Pushgatewayの使い方 - Prometheusドキュメント

Pushgatewayとは

Pushgatewayは、短命のジョブやバッチジョブがメトリクスをPrometheusにexposeすることを可能にするためにある。 この種のジョブはscrapeされるほど長く存在しないので、代わりにPushgatewayにメトリクスをpushし、PushgatewayがそのメトリクスPrometheusにexposeする。

実行方法

リリースページからプラットフォームあったtar.gzファイルをダウンロードする。

基本的な設定でよければ、実行ファイルを起動するだけでよい。listenするアドレスを変更するためには、--web.listen-addressフラグを使う(例えば 0.0.0.0:9091:9091)。Pushgatewayは、デフォルトではメトリクスを永続化しない。--persistence.fileフラグによって、メトリクスを永続化させるためのファイルを指定することができる。これによって、Pushgatewayを再起動してもメトリクスが存続する。

Dockerを利用する

Dockerイメージprom/pushgatewayを使えば、Pushgatewayをデプロイできる。

docker pull prom/pushgateway

docker run -d -p 9091:9091 prom/pushgateway

使い方

Pushgatewayをscrape対象として設定する

Pushgatewayは、Prometheusのscrape対象として一般的な方法で設定されている必要がある。ただし、honor_labels: trueを常に設定する必要がある。

ライブラリ

PrometheusクライアントライブラリにはメトリクスをPushgatewayにpushする機能が必要である。 クライアントは、普通、Prometheusサーバーのscrapeに対して受動的にメトリクスを表示するが、pushをサポートするクライアントライブラリは、クライアントが 呼び出すpush機能を備えていなければいけない。 この機能によって、能動的に下記のAPIを利用しPushgatewayへメトリクスをpushする。

Command line

Prometheusはプロトコルがテキストなので、特別なCLIを必要とせずに簡単にメトリクスをpushすることが出来る。 curlのようなHTTPのコマンドを使うだけでよい。あなたの好きなスクリプト言語にもこのメリットを最大化できるようなビルトインのHTTPの機能があるだろう。

注意: テキストプロトコルでは、各行末尾をLF(つまり'\n')にする必要がある。

  • 一つのメトリクスを{job="some_job"}で指定されたグループにpushする
echo "some_metric 3.14" | curl --data-binary @- http://pushgateway.example.org:9091/metrics/job/some_job
  • 型情報がないので、some_metricの型は、untypedになる
  • 複雑なメトリクスを{job="some_job",instance="some_instance"}で指定されたグループにpushする
cat <<EOF | curl --data-binary @- http://pushgateway.example.org:9091/metrics/job/some_job/instance/some_instance
# TYPE some_metric counter
some_metric{label="val1"} 42
# TYPE another_metric gauge
# HELP another_metric Just an example.
another_metric 2398.283
EOF
  • {job="some_job",instance="some_instance"}で特定される全てのメトリクスを削除する
curl -X DELETE http://pushgateway.example.org:9091/metrics/job/some_job/instance/some_instance
  • {job="some_job"}で特定される全てのメトリクスを削除する。上の例で出てくる{job="some_job",instance="some_instance"}は、同じJobラベルを持っているが削除しないことに注意すること
curl -X DELETE http://pushgateway.example.org:9091/metrics/job/some_job

参考リンク

Prometheus: Up & Running: Infrastructure and Application Performance Monitoring

Prometheus: Up & Running: Infrastructure and Application Performance Monitoring