Prometheus(プロメテウス)
Prometheusは、リアルタイムのイベント監視とアラート通知を目的とするオープンソースの監視ツールであり、時系列データベースをHTTPプル方式で構築します。これにより、柔軟なクエリー機能と強力なアラートシステムを提供し、ユーザーが運用の効率を向上させる手助けをします。PrometheusはGo言語で開発されており、Apache License 2.0の下で利用可能で、
GitHub上でもソースコードが公開されています。また、
KubernetesやEnvoyと共に
Cloud Native Computing Foundation(CNCF)の卒業プロジェクトとして認められています。
歴史
Prometheusは2012年に
SoundCloud社によって開発がスタートしました。
SoundCloudは、既存の監視ソリューションであるStatsDやGraphiteでは目的を達成できないと判断し、そこで新たな多次元データモデルを基本にした監視ツールの開発に着手しました。具体的には、運用の簡素化やスケーラビリティ、強力なクエリー言語といった要素が求められました。Prometheusはオープンソースプロジェクトとして開始され、2013年に自社の監視システムに導入され、2015年1月には正式に発表されました。CNCFは2016年5月にPrometheusをインキュベートプロジェクトとして受け入れ、2018年8月には卒業プロジェクトに認定しています。
アーキテクチャー
Prometheusは典型的な監視プラットフォームとして、以下のツール群を組み合わせて構成されています:
- - Exporter: 監視対象ホストでメトリクスを提供
- - Prometheus: 定期的にデータを要求し、一元管理
- - Alertmanager: アラート通知機能
- - Grafana: メトリクスのダッシュボード表示
- - PromQL: データクエリー用の言語
メトリクスデータの格納
Prometheusは、メトリクスという形式で時系列データを保存します。各メトリクスには識別用の名前が与えられ、任意の数のキー・バリューの組(ラベル)を持つことができます。これにより、データソースの特定やHTTPステータス、クエリメソッドなどの情報を細かく分析できます。これらを組み合わせた多次元データモデルにより、クエリーを実行することが可能です。
データ収集手法
Prometheusは、データソースであるExporterから、設定したポーリング頻度に従いメトリクスを取得します。このプロセスは「プル方式」として機能し、それぞれのExporterは要求されたデータをPrometheusに提供します。また、PrometheusにはExporterを自動で発見する機能も備わっており、運用の効率を向上させる助けとなります。
PromQLについて
PromQL(Prometheus Query Language)は、Prometheusがデータの選択や集計のために用意した独自のクエリー言語です。時系列データベースに特化しており、時間に関連した多彩な問い合わせ機能が組み込まれています。Prometheusでは、以下の4つのメトリック型が定義されています:
1. Counter: 一方向に増加するメトリクス
2. Gauge: 増減が自由なメトリクス
3. Histogram: 度数分布を収集し視覚化するメトリクス
4. Summary: 度数分布と観測値の総数と合計を記録するメトリクス
監視とアラート管理
Prometheusは、しきい値や期間の条件に基づくアラートの設定が可能で、発行されたアラートはAlertmanagerに転送されます。Alertmanagerは、アラートの制限や通知手段(メール、Slack、PagerDutyなど)をカスタマイズできる機能を持っています。
ダッシュボードの活用
Prometheus自体には本格的なダッシュボード機能はありませんが、簡易的なグラフ表示は可能で、
Grafanaとの連携により本格的な可視化が可能となります。
相互運用性と標準化
Prometheusは、他の監視プロトコルをサポートし、さまざまなアプリケーションと連携できる設計がされています。メトリクス形式はOpenMetricsという標準化に向けた取り組みも進めており、既にいくつかの製品で利用されています。
利用ケース
Prometheusは、
SoundCloud社の初期導入から始まり、DigitalOceanや
GitLabなど多くの企業によって採用されています。その柔軟性と強力な機能セットが評価されています。
Prometheusは、監視とアラート管理の強力なソリューションを提供し、オープンソースの利点を生かしたシステム監視の新しいスタンダードとなることでしょう。