Prometheusとは - Prometheusドキュメント

このページはPrometheus公式ドキュメント和訳+αの一部です。

Prometheusとは

Prometheusは、オープンソースのシステム監視およびアラートのツールキットであり、もともとSoundCloudで開発されていた。 2012年の発足以来、多くの企業と組織がPrometheusを採用し、プロジェクトは活発な開発者とユーザーコミュニティを擁している。 現在は独立したオープンソースプロジェクトであり、いかなる企業からも独立して保守されている。 このことを強調するため、またプロジェクトのガバナンス構造を明確にするために、Prometheusは、Cloud Native Computing Foundationに2016年に、Kubernetesに次ぐ2番目のプロジェクトとして参加した。

さらに詳しいPrometheusの概要は、メディアからリンクされているリソースを参照すること。

機能

Prometheusの主な機能は、

  • メトリック名とキーバリューで特定される時系列データによる多次元データモデル
  • PromQL 上記の多次元データから最大限の価値を引き出す柔軟なクエリ言語
  • 分散ストレージに依存していないこと。単一のサーバーノードが自律している
  • HTTPを通したpullモデルによる時系列データの収集
  • 中間ゲートウェイによる時系列データpushのサポート
  • サービスディスカバリーと静的な設定による監視対象の検出
  • 複数の方式でのグラフ化とダッシュボードのサポート

コンポーネント

Prometheusのエコシステムは、複数のコンポーネントからなり、その多くは必須ではない

ほとんどのPrometheusのコンポーネントは、静的なバイナリとして簡単にビルドとデプロイできるように、Goで書かれている

アーキテクチャ

Prometheusとそのエコシステムのコンポーネントアーキテクチャーを以下の図に示す

Prometheusアーキテクチャー

Prometheusは、instrumentされたジョブから、直接(または短命のジョブに対してはPushgateway経由で)メトリクスを取得する。 取得したサンプルは全てローカルに保存され、集約したり、新しい時系列データを記録したり、アラートを生成するために、このデータに対してルールが実行される。 収集されたデータを可視化するためにGrafanaや他のAPIコンシューマーを使うことが出来る。

Prometheusが適しているのは

Prometheusは、数値のみから成るあらゆる時系列データの記録に対してうまく機能する。 マシン中心の監視にもサービス指向の動的なアーキテクチャの監視にも適している。 マイクロサービスの世界では、多次元データの収集とクエリのサポートが特に強みである。

Prometheusは、障害時に素早く問題を診断できるようなシステムとなるべく、信頼性に重きを置いて設計されている。 各Prometheusサーバーは、スタンドアローンで、ネットワークストレージやリモートのサービスに依存していない。 インフラの他の部分に障害があっても利用可能であり、Prometheusを利用するために大規模なインフラを用意する必要がない。

Prometheusが適していないのは

Prometheusは信頼性に重きを置いている。システムについての統計を、いつでも、障害がおきている状況でも、見ることができる。 もし、リクエストごとの請求金額などのために、100%の精度が必要ならば、Prometheusは良い選択ではない。 なぜなら、収集されたデータはおそらく十分に詳細かつ完全ではないからである。 そのような場合には、請求額データの収集と分析には他のシステムを使い、残りの監視にPrometheusを使うのが良い。

参考リンク

おすすめ書籍

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

和訳活動の支援

Prometheusドキュメント和訳が役に立った方は、以下QRコードからPayPayで活動を支援して頂けるとありがたいです。

PayPayによる支援用QRコード
上のQRコードからPayPayによる支援