Prometheusへようこそ!Prometheusは、監視対象ターゲット上のHTTPエンドポイントからメトリクスをスクレイピングすることにより、監視対象ターゲットからメトリクスを収集するモニタリングプラットフォームです。このガイドでは、Prometheusをインストール、設定し、Prometheusを使用して最初のリソースを監視する方法を紹介します。Prometheusをダウンロード、インストール、実行します。また、ホストおよびサービスで時系列データを公開するツールであるエクスポーターもダウンロードしてインストールします。最初のエクスポーターはPrometheus自体であり、メモリ使用量、ガベージコレクションなどに関する幅広いホストレベルのメトリクスを提供します。
お使いのプラットフォーム用の最新リリースのPrometheusをダウンロードし、解凍してください
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Prometheusサーバーは、prometheus
(Microsoft Windowsの場合はprometheus.exe
)という単一のバイナリです。バイナリを実行し、--help
フラグを渡すことで、そのオプションに関するヘルプを表示できます。
./prometheus --help
usage: prometheus [<flags>]
The Prometheus monitoring server
. . .
Prometheusを開始する前に、設定しましょう。
Prometheusの設定はYAMLです。Prometheusのダウンロードには、prometheus.yml
というファイルにサンプル設定が含まれており、これは開始するのに適した場所です。
例のファイルからほとんどのコメントを削除して、より簡潔にしました(コメントは#
で始まる行です)。
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
例の設定ファイルには、global
、rule_files
、およびscrape_configs
の3つの設定ブロックがあります。
global
ブロックは、Prometheusサーバーのグローバル設定を制御します。2つのオプションがあります。最初のscrape_interval
は、Prometheusがターゲットをスクレイピングする頻度を制御します。これは、個々のターゲットで上書きできます。この場合、グローバル設定は15秒ごとにスクレイピングすることです。evaluation_interval
オプションは、Prometheusがルールを評価する頻度を制御します。Prometheusは、ルールを使用して新しい時系列を作成し、アラートを生成します。
rule_files
ブロックは、Prometheusサーバーがロードするルールの場所を指定します。今のところ、ルールはありません。
最後のブロックであるscrape_configs
は、Prometheusが監視するリソースを制御します。Prometheusは、自身に関するデータもHTTPエンドポイントとして公開するため、自身の状態をスクレイピングして監視できます。デフォルト設定では、prometheus
という単一のジョブがあり、Prometheusサーバーによって公開される時系列データをスクレイピングします。ジョブには、静的に設定された単一のターゲットである、ポート9090
のlocalhost
が含まれています。Prometheusは、/metrics
のパスにあるターゲットでメトリクスが利用可能であることを期待します。したがって、このデフォルトのジョブは、URL:http://localhost:9090/metricsを介してスクレイピングしています。
返される時系列データは、Prometheusサーバーの状態とパフォーマンスを詳しく説明します。
構成オプションの完全な仕様については、構成ドキュメントを参照してください。
新しく作成した設定ファイルを使用してPrometheusを開始するには、Prometheusバイナリを含むディレクトリに変更し、次を実行します
./prometheus --config.file=prometheus.yml
Prometheusが起動するはずです。また、http://localhost:9090で自身に関するステータスページを参照することもできます。自身のHTTPメトリクスエンドポイントから自身に関するデータを収集するのに約30秒かかります。
また、自身のメトリクスエンドポイント:http://localhost:9090/metricsに移動することで、Prometheusが自身に関するメトリクスを提供していることを確認できます。
Prometheusが自身について収集したデータをいくつか見てみましょう。Prometheusの組み込みの式ブラウザを使用するには、http://localhost:9090/graphに移動し、「グラフ」タブ内の「テーブル」ビューを選択します。
http://localhost:9090/metricsからわかるように、Prometheusが自身についてエクスポートする1つのメトリクスは、promhttp_metric_handler_requests_total
(Prometheusサーバーが処理した/metrics
リクエストの合計数)と呼ばれます。これを式コンソールに入力します
promhttp_metric_handler_requests_total
これにより、メトリクス名promhttp_metric_handler_requests_total
を持つ、さまざまなラベルを持つ、異なる時系列が多数返されるはずです(各ラベルの最新の記録値とともに)。これらのラベルは、異なるリクエストステータスを指定します。
HTTPコード200
を返したリクエストのみに関心がある場合は、このクエリを使用してその情報を取得できます
promhttp_metric_handler_requests_total{code="200"}
返された時系列の数を数えるには、次のように記述できます
count(promhttp_metric_handler_requests_total)
式言語の詳細については、式言語ドキュメントを参照してください。
式をグラフ化するには、http://localhost:9090/graphに移動し、「グラフ」タブを使用します。
たとえば、次の式を入力して、自己スクレイピングされたPrometheusで発生している、ステータスコード200を返す1秒あたりのHTTPリクエストレートをグラフ化します
rate(promhttp_metric_handler_requests_total{code="200"}[1m])
グラフ範囲のパラメータやその他の設定を試すことができます。
Prometheusからのみメトリクスを収集するのは、Prometheusの機能を十分に表現しているとは言えません。Prometheusが何ができるかをよりよく理解するには、他のエクスポーターに関するドキュメントを調べることをお勧めします。Node Exporterを使用したLinuxまたはmacOSホストメトリクスのモニタリングガイドは、始めるのに適した場所です。
このガイドでは、Prometheusをインストールし、リソースを監視するようにPrometheusインスタンスを設定し、Prometheusの式ブラウザで時系列データを操作する基本を学びました。Prometheusについて学習を続けるには、次に何を調べるかについてのアイデアについては、概要を確認してください。
このドキュメントはオープンソースです。問題またはプルリクエストを提出して改善にご協力ください。