- prometheusを起動
./prometheus --config.file=prometheus.yml
http://localhost:9090
でステータスページが見られる
http://localhost:9090/metrics
で自身のmetricsのendpointが見られる(自分自身のmetricsも収集している)
- 設定の再読込をするには?
- Prometheusプロセスに
SIGHUP
を送る /-/reload
にPOSTリクエストを送る
- Prometheusプロセスに
https://prometheus.io/docs/introduction/faq/#can-i-reload-prometheus-s-configuration
バッチジョブの監視はどうする?
- Pushgatewayを使う
データ形式
<metric name>{<label name>=<label value>, ...}
- 例:
api_http_requests_total{method="POST", handler="/messages"}
- 例:
prometheus.ymlの構成
- global
- prometheus自体の一般的な設定
- rule_files
- 追加で作った計算式を別ファイルに定義し、それを読み込む
- scrape_configs
- データを取得しにいくEndpoint(サーバー)などを記載
- global
インストール方法
- コンパイル済みのバイナリ(1ファイル)を使う
- ソースからビルド
- Docker https://hub.docker.com/u/prom/
prometheus.rules.yml
- recording_rulesとalerting_rulesがある
- recording_rulesは集計したい値の追加
- alerting_rulesはalertmanagerに送る条件の追加
- prometheusはアラートの発火をシンプルに行うだけ。アラートの集約・通知条件・依存関係の定義などの細かい設定はalertmanagerで行う、というように役割分担する。
templateはGo言語のtext/templateパッケージをベースにしている