Prometheus 2.0を発表

2017年11月8日筆者: Prometheus チームを代表して Fabian Reinartz

約1年半前、私たちはPrometheus 1.0を公開しました。このリリースはプロジェクトにとって重要な節目となりました。Prometheusのシンプルでありながら非常に強力な監視哲学を構成する広範な機能セットに到達しました。

それ以来、私たちはさまざまなサービスディスカバリ統合を追加および改善し、PromQLを拡張し、プラグイン可能な長期保存ソリューションを可能にするリモートAPIの最初のイテレーションを実験しました。

しかし、新しいメジャーリリースに値するほど、他に何が変わったのでしょうか?

Prometheus 2.0

Prometheusには、ユーザーがすぐに愛着を覚えるシンプルで堅牢な運用モデルがあります。しかし、インフラストラクチャの分野は停滞せず、KubernetesやMesosのようなプロジェクトはソフトウェアの展開方法と管理方法を急速に変化させています。監視される環境はますます動的になっています。

Prometheusのパフォーマンスにこれが与える負担をますます感じていました。ストレージサブシステムは、予想される負荷に対して慎重な構成が必要でした。Prometheus 1.6は、その自動チューニング機能によりこの問題を大幅に軽減しました。それでも、ユーザーは避けられない限界にぶつかることになりました。

ストレージ

2017年初頭、水面下で動きがありました。最初は新しい、より高性能な時系列データベースの実験として始まったものが、実用的なベンチマークで急速に確認されました。過去6か月間、私たちはこの作業を独立した時系列データベースとして安定化させ、これをPrometheus自体に再統合することに忙殺されていました。その結果、事実上すべての次元で改善された、はるかに優れたパフォーマンスのPrometheus 2.0が誕生しました。クエリのレイテンシはより一貫性があり、特にシリーズの変動が激しい場合にスケーリングが向上します。さまざまな実際の運用シナリオで測定されたリソース消費量も大幅に減少しました

  • Prometheus 1.8と比較してCPU使用率20%~40%削減
  • Prometheus 1.8と比較してディスク容量使用量33%~50%削減
  • クエリ負荷が少ない場合のディスクI/Oは、通常平均で1%未満

Prometheus 1.8 vs 2.0 resource comparison

また、今後の最新のコンピューティング環境のますます動的な特性に対応するのに十分な機能を備えています。

陳腐化処理

さらに、Prometheusのエクスペリエンスをより一貫性があり直感的にするために、大小さまざまな変更が行われました。最も注目すべきは、最も古く、最も要望の多かったロードマップ項目の一つであった陳腐化処理です。新しい改善により、消滅する監視ターゲットやそれらのターゲットからの系列が明示的に追跡されるようになり、クエリのアーティファクトが減少し、アラートの応答性が向上します。

その他の改善点

Prometheus 2.0には、データベース全体のスナップショットバックアップの組み込みサポートも含まれています。

また、記録およびアラートルールを独自の形式からユビキタスなYAML形式に移行しました。これにより、構成管理やテンプレート化との統合が容易になります。

他にも多くの小さな変更とクリーンアップが行われました。変更の全体像と設定の適応方法については、Prometheus 1.xから2.0への移行ガイドをご確認ください。しかし、ご心配なく。Prometheus 2は、これまで愛されてきたPrometheusのままで、はるかに高速で、運用と使用がさらに簡単になっています。

次のステップ

新しいストレージサブシステムは、アクセス可能で拡張性があるように設計されています。これは、Prometheusに直接統合される新機能だけでなく、その上に構築できるカスタムツールにも当てはまります。シンプルでオープンなストレージ形式とライブラリにより、ユーザーは動的な保持ポリシーのようなカスタム拡張機能を簡単に構築することもできます。これにより、ストレージ層はPrometheus自体に複雑さを持ち込むことなく、幅広い要件を満たすことができ、Prometheusはコア目標に集中できます。

リモートAPIは、シンプルさによるPrometheusの信頼性のモデルを犠牲にすることなく、長期保存の要件を満たすために進化し続けます。

試してみてください!

Prometheus 2.0は、通常通り公式バイナリコンテナイメージをダウンロードして試すことができます。Prometheusを起動して実行する方法のチュートリアルについては、Getting startedページをご覧ください。

Prometheus 1.xからアップグレードする場合は、調整が必要な点や、移行期間中に古いPrometheusサーバーからデータを読み込むためにリモートAPIを使用する方法については、移行ガイドをご確認ください。

最後に、プレリリース版を広範囲にテストし、問題のデバッグにご協力いただいたすべてのユーザーの皆様に感謝いたします。この大きな節目は、皆様なしには実現できませんでした!