Cloud Native Computing Foundation (CNCF)は2018年8月9日、オープンソースの監視ツールキットであるPrometheusが、インキュベーション段階を卒業したと発表した。プロジェクトがこの評価を達成するためには、その成長状況やドキュメント、組織のガバナンスプロセス、コミュニティに対する持続可能性と協調性のコミットメントなどを示す必要がある。
クラウドネイティブなアプリケーション開発を継続する企業が増えるにつれて、これら分散アプリケーションの監視が非常に重要なものとなっている。このような増加の結果として見れば、CNCF内でのPrometheusのステップアップは理に叶ったものだ。CNCFのCOOであるChris Aniszczyk氏は、次のように説明する。
2012年の誕生以来、Prometheusは、最新のクラウドネイティブアプリケーションを開発する企業にとって、最も適したオープンソースの監視ツールのひとつに成長しました。開発者とユーザからなる活発なコミュニティも育ち、プロジェクトを卒業するために必要な信頼を、TOC(Technical Oversight Committee)から勝ち取ることに成功したのです。
インキュベーション段階から卒業段階に昇格するプロジェクトは、CNCFの行動規範を採用し、独立したセキュリティ監査を受け、コミュニティの成長計画の骨格を述べたガバナンス構造を公開する必要がある。オープンソースコミュニティの多くの人々が、今回の卒業段階への昇格を称賛している。SUSEのCTOであるThomas Di Giacomo氏もそのひとりだ。
KubernetesのようなCloud Native Computing Foundationプロジェクトや、その他の分散システムを補完する、優れた存在です。今回の卒業段階への昇格は、そのテクノロジ、コミュニティの成熟度、そして幅広いユースケースに対してPrometheusが提供する価値が高く評価された結果です。
Prometheusは2012年、音楽ストリーミングとポッドキャストサービスとして人気のあるSoundCloudを起源として誕生し、2016年5月にCNCFに寄贈された。インキュベーションフェーズに入ってからの公式メジャーリリースとマイナーリリースは、これまでに30回を数えている。
2017 GOTOカンファレンスでのプレゼンテーションでは、SoundCloud のプロダクションエンジニアであるBjörn Rabenstein氏が、Prometheus開発の背景となったいくつかの要因について説明している。氏のメッセージには、ブラックボックス監視が不十分であることも含まれていた。CERTで上級開発者チームのリーダを務めるJoeseph Yankel氏は、ブラックボックステストを次のように定義する。
システムあるいはアプリケーション(ディスク容量のチェックやホストのpingなど)に対して、ホストないしサービスが稼働しているかどうかを確認する一方で、現在の状態の理解については寄与しない(手法)。
イメージ引用: (スクリーンショット) https://www.youtube.com/watch?v=hhZrOHKIxLw
これとは対照的に、Prometheusでは、時系列データを活用したホワイトボックステストのアプローチによって、現在の状態に至った理由を判断することが可能になっている。この方法論に移行したもうひとつの理由は、SoundCloudでのシステム監視にDevOpsアプローチを使用する方法にある。Rabenstein氏はこれについて、“コードを作った者が運用する(you build it, you run it)”と述べている。従来のブラックボックス的アプローチでは、十分な状況説明もなく、プロダクトをフェンス越しに運用チームに投げ渡す形になっていたが、現在のSoundCloudでは、コードや状態テーブルのメトリクスを含むことで、完全な監視機能を構築することが重視されている。
ホワイトボックス監視を活用することで、Prometheus内の警告はよりインテリジェントになる。しきい値に依存するだけではなく、時系列データのメリットを活用できるためだ。Rabenstein氏は例として、ディスクスペースのしきい値を85パーセントに設定するという、従来の監視方法を示してみせた。このシナリオでは、ディスクが実際にはフルになっていなくても、警告が不必要に発行されることになる。対照的に、時系列データを使用すれば、トレンドラインが実際の容量不足を予測する時にのみ警告を発することが可能になる。オンコール対応するエンジニアにとって、不必要なコールアウトを回避することは、警告疲れ(alerting fatigue)を防止する上で極めて重要だ、とRabenstein氏は主張する。
イメージ引用: (スクリーンショット) https://www.youtube.com/watch?v=hhZrOHKIxLw
トレンドラインの活用以外にも、Prometheusでは、アラートルーティングツリーを構築することによって、通知をグループ化あるいはバンドルすることもできる。これにより、例えば基盤となるホストに障害が発生した場合、そのホスト上で動作する個々のサービスに対してではなく、単一の警告として送信することが可能になる。
イメージ引用: (スクリーンショット) https://www.youtube.com/watch?v=hhZrOHKIxLw
PrometheusのマイルストンとCNCFでの開発経過に関する詳細は、こちらのブログで確認して頂きたい。
この記事を評価
- 編集者評
- 編集長アクション