Prometheus (ソフトウェア)

イベント監視・アラート通知ソフトウェア ウィキペディアから

Prometheus (ソフトウェア)

Prometheus(プロメテウス)は、イベント監視とアラート通知に利用される無料のアプリケーション・ソフトウェアである[2]時系列データベースHTTPプル方式でリアルタイムに構築し、柔軟なクエリーとアラート機能を提供する[3][4]

概要 初版, 最新版 ...
Prometheus
Thumb
初版 2012年11月24日 (12年前) (2012-11-24)
最新版
3.2.1[1] / 2025年2月26日 (41日前) (2025-02-26)
リポジトリ github.com/prometheus/prometheus
プログラミング
言語
Go
対応OS クロスプラットフォーム
種別 時系列データベース
ライセンス Apache License 2.0
公式サイト prometheus.io
テンプレートを表示
閉じる

PrometheusはGoで書かれ、Apache License 2.0の下でライセンスされ、ソースコードはGitHubで公開されており[5]KubernetesEnvoyとともにCloud Native Computing Foundationの卒業プロジェクトとなっている[6]

歴史

Prometheusは、2012年にSoundCloud社で開発された[7]。同社は、既存のメトリクスおよび監視ソリューション(StatsDGraphiteを使用)が同社の目的に不十分であると気づいた。そこで、多次元データモデル、運用のシンプルさ、スケーラブルなデータ収集、強力なクエリー言語など満たすべき目標を定め、Googleの監視ツールBorgmonを参考に[8][9]単独のツールで実現すべく開発を始めた[10]。このプロジェクトは当初からオープンソースであり、明確にアナウンスされていないにもかかわらず、BoxeverDockerのユーザーにも利用され始めた[10][11]

2013年、SoundCloudの自社システム監視にPrometheusが導入された[10]。それが正式に公示されたのは2015年1月である[10]

2016年5月、Cloud Native Computing Foundation(以下CNCF)は、Kubernetesに次ぐ2番目のインキュベートプロジェクトとしてPrometheusを受け入れた。発表記事には、DigitalOceanEricssonCoreOSWeaveworksRed HatGoogleなど多くの企業で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は、移行時の相互運用を可能にするために、いくつかの監視・管理プロトコルをサポートしている(GraphiteStatsDSNMPJMXCollectD等)。

Prometheusは、プラットフォームの可用性と基本的な操作に重点を置いている[23]。メトリクスは通常数週間保存されるが、リモートストレージを利用することでより長期的かつ安全に保存することもできる[24]

OpenMetricsへの標準化

Prometheusのメトリクス形式を「OpenMetrics」と呼ばれる標準として普及させる取り組みがある[25]InfluxDataのTICKスイート[26]InfluxDBGoogle Cloud Platform[27]Datadog[28]など、すでにこの形式を採用した製品も存在する。

採用

Prometheusは前述のとおり、開発元であるSoundCloud社の自社システム監視に初めて使用された[10]。またCNCFには、デジタルホスティングサービスDigitalOcean[29]、デジタルフェスティバルDreamHack[30]、連絡先移行サービスShuttleCloud[31]など、Prometheusを利用する企業の事例が多数掲載されている。ほかにもデータパイプライン監Pandora Radio[32]、リポジトリマネージャーGitLabなどがPrometheusを採用している。

出典

参考文献

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.