Prometheus
pullモデルのオープンソース監視・アラーティングシステム。監視対象がHTTPエンドポイント(/metrics)上でメトリクスを公開し、Prometheusサーバーが定期的にそのエンドポイントをスクレイプ(取得)しに行く方式を取る。push型の監視ツールに対し、監視対象のライフサイクルに依存せず、疎通確認がしやすいという特徴がある。
2012年にSoundCloudで開発が始まり、開発者らがGoogleの内部監視システムBorgmonについて知ったことがきっかけでOSS版として作られた。2016年にCNCFの2番目のプロジェクトとしてホストされ、2018年にKubernetesに次ぐ2番目のCNCF Graduatedプロジェクトとなった。
データモデル
メトリクスはメトリクス名とキーバリューのラベルの組み合わせで識別される多次元の時系列データとして保存される。専用のクエリ言語PromQLで、集約・変換・複雑な演算をリアルタイムに行える。スクレイプ対象が/metricsエンドポイントで公開する具体的なワイヤーフォーマットについてはtext-based exposition formatを参照。
エコシステム
- Prometheusサーバー本体: スクレイプ・保存・クエリ・アラート評価を担う
- node_exporter: Linux/UNIXマシン自体のハードウェア・OSレベルのメトリクスをエクスポートする公式exporter
- 他にも各種ミドルウェア・言語ランタイム向けのexporterが多数存在し、対象システムのネイティブなメトリクスをPrometheus形式のHTTPエンドポイントへ変換して公開する役割を担う