Prometheus (ソフトウェア)
イベント監視・アラート通知ソフトウェア ウィキペディアから
Prometheus(プロメテウス)は、イベント監視とアラート通知に利用される無料のアプリケーション・ソフトウェアである[2]。時系列データベースをHTTPプル方式でリアルタイムに構築し、柔軟なクエリーとアラート機能を提供する[3][4]。
![]() | |
初版 | 2012年11月24日 |
---|---|
最新版 |
3.2.1[1]
/ 2025年2月26日 |
リポジトリ |
github |
プログラミング 言語 | Go |
対応OS | クロスプラットフォーム |
種別 | 時系列データベース |
ライセンス | Apache License 2.0 |
公式サイト |
prometheus |
PrometheusはGoで書かれ、Apache License 2.0の下でライセンスされ、ソースコードはGitHubで公開されており[5]、KubernetesやEnvoyとともにCloud Native Computing Foundationの卒業プロジェクトとなっている[6]。
歴史
Prometheusは、2012年にSoundCloud社で開発された[7]。同社は、既存のメトリクスおよび監視ソリューション(StatsDとGraphiteを使用)が同社の目的に不十分であると気づいた。そこで、多次元データモデル、運用のシンプルさ、スケーラブルなデータ収集、強力なクエリー言語など満たすべき目標を定め、Googleの監視ツールBorgmonを参考に[8][9]単独のツールで実現すべく開発を始めた[10]。このプロジェクトは当初からオープンソースであり、明確にアナウンスされていないにもかかわらず、BoxeverやDockerのユーザーにも利用され始めた[10][11]。
2013年、SoundCloudの自社システム監視にPrometheusが導入された[10]。それが正式に公示されたのは2015年1月である[10]。
2016年5月、Cloud Native Computing Foundation(以下CNCF)は、Kubernetesに次ぐ2番目のインキュベートプロジェクトとしてPrometheusを受け入れた。発表記事には、DigitalOcean、Ericsson、CoreOS、Weaveworks、Red Hat、Googleなど多くの企業でPrometheusが利用されていることが記されている[12]。
2016年7月、Prometheus 1.0がリリースされた[13]。
2018年8月、CNCFは、Prometheusプロジェクトが“卒業”(graduated)したことを発表した[6]。
アーキテクチャー
要約
視点
Prometheusによる監視プラットフォームは、典型的には次のツールの組み合わせで構成される。
- 監視対象ホスト上で実行され、メトリクスを提供するExporter
- メトリクスを定期的に要求(プル)し、一元化して管理するPrometheus
- メトリクスと設定条件に基づいてアラートを通知するAlertmanager[14]
- メトリクスをダッシュボードにグラフ表示するGrafana
- アラート通知やグラフ表示に使用されるクエリ言語PromQL
データ格納形式
Prometheusが扱う時系列データはメトリクスという形で保存され、各メトリクスには参照用の名前がついている。さらに各メトリクスは、任意の数のキー・バリューの組(ラベル)でドリルダウンすることが可能である。このラベルには、データソース(データがどのサーバーから送られてくるか)の情報や、HTTPステータスコード(HTTP応答に関連するメトリクス用)、HTTPクエリーメソッド(GETとPOST)、エンドポイントURLなど、アプリケーション固有のブレークダウン情報を含めることができる。これらのラベルを組み合わせてクエリーを実行できることから、Prometheusのデータは多次元データモデルと呼ばれる[15][10][11]。
データ収集
Prometheusは、Exporterと呼ばれるデータソースに特定のポーリング頻度で問い合わせを行う(プル方式)。各Exporterは、Prometheusが問い合わせたエンドポイントにそのデータソースの現在値メトリクスを提供する[10]。Prometheusは、こうして集めたメトリクスを集約して保管する。なおPrometheusには、Exporterを自動的に発見するためのメカニズムがいくつか用意されている[16]。
PromQL
Prometheusはデータの選択と集計のため、独自のクエリー言語PromQL(Prometheus Query Language)を備えている。PromQLは時系列データベースに適合するよう設計されており、時間に関連した問い合わせ機能も豊富に用意されている[17]。Prometheusには次の4つのメトリック型が定義されている。
- Counter
- 値が増加する一方の単調な値
- Gauge
- 自由に増減する値
- Histogram
- 度数分布を収集し、ヒストグラムとして視覚的に処理できるようにする
- Summary
- Histogramと同様に度数分布が記録され、すべての観測値の数と合計も記録される
監視とアラート
Prometheusでは、閾値や期間の条件によるアラート通知の設定を行うことができる。発行されたアラートはAlertmanagerに転送される。Alertmanagerには、アラートを制限したり、メール、Slack、PagerDutyなどに転送したりするロジックを含めることができる[18]。Microsoft Teamsのような他のメッセージングシステムも、外部統合のためのメカニズム「Alertmanager Webhook Receiver」を経由して利用することができる[19]。
ダッシュボード
Prometheusは、ダッシュボードソリューションとしては設計されていない。特定のクエリーを簡易的にグラフ化することはできるものの、本格的なダッシュボードを生成するにはGrafanaなどと連携させる必要がある[20]。
相互運用性
Prometheusはホワイトボックス監視を推奨しており、アプリケーションには内部メトリクスを提供するExporterの公開が望まれている[21]。実際、すでにさまざまなアプリケーションのエクスポーターが公式・非公式に用意されている[22]。Prometheusは、移行時の相互運用を可能にするために、いくつかの監視・管理プロトコルをサポートしている(Graphite、StatsD、SNMP、JMX、CollectD等)。
Prometheusは、プラットフォームの可用性と基本的な操作に重点を置いている[23]。メトリクスは通常数週間保存されるが、リモートストレージを利用することでより長期的かつ安全に保存することもできる[24]。
OpenMetricsへの標準化
Prometheusのメトリクス形式を「OpenMetrics」と呼ばれる標準として普及させる取り組みがある[25]。InfluxDataのTICKスイート[26]、InfluxDB、Google Cloud Platform[27]、Datadog[28]など、すでにこの形式を採用した製品も存在する。
採用
Prometheusは前述のとおり、開発元であるSoundCloud社の自社システム監視に初めて使用された[10]。またCNCFには、デジタルホスティングサービスDigitalOcean[29]、デジタルフェスティバルDreamHack[30]、連絡先移行サービスShuttleCloud[31]など、Prometheusを利用する企業の事例が多数掲載されている。ほかにもデータパイプライン監Pandora Radio[32]、リポジトリマネージャーGitLabなどがPrometheusを採用している。
出典
参考文献
Wikiwand - on
Seamless Wikipedia browsing. On steroids.