Prometheusをさわってみる
Prometheusをチュートリアルに沿って簡単にさわってみる。
チュートリアル
- https://prometheus.io/docs/tutorials/getting_started/
- https://prometheus.io/docs/prometheus/latest/getting_started/
Prometheusの起動
参考
https://prometheus.io/docs/prometheus/latest/installation/
DockerでPrometheusを起動する
デフォルトでそのまま起動。
docker run -p 9090:9090 prom/prometheus
open http://localhost:9090
デフォルトの設定はprometheus.ymlで確認できる。
docker exec <CONTAINER_ID> cat /etc/prometheus/prometheus.yml
Prometheus自身のメトリクスをブラウザで確認
open http://localhost:9090/metrics
出力されるメトリクスはmetrics.log
参照
収集したMetricsをPrometheusで確認
デフォルトの設定で起動すると、Prometheus自身のメトリクスを収集するように設定されているため 収集したメトリクスをPrometheusで確認してみる。
[Query画面]でメトリクス名を入力して[Execute]ボタンを押下する。
出力形式は[Table]か[Graph]を選択できる。以下は[Talbe]で表示した例。
クエリ(PromQL)の詳細については公式ドキュメントを参照。
PrometheusがスクレイピングするTargetを追加
Prometheus以外のメトリクス収集対象を追加してみる。
メトリクスをNodeモジュールから収集する
チュートリアルのNodeモジュールをDockerで実行しようとすると 下記のエラーとなり起動できない。
docker run --rm \
--net="host" \
--pid="host" \
-v "/:/host:ro,rslave" \
\
quay.io/prometheus/node-exporter:latest --path.rootfs=/host
docker: Error response from daemon: path / is mounted on / but it is not a shared or slave mount.
原因:node-exporterのイメージはLinux用でMacOSに対応していない。
回避:node-exporterのバイナリをローカルで起動する。
cd ./node_exporter-1.8.2.darwin-amd64
./node_exporter
open http://localhost:9100/metrics
収集対象に追加する
prometheus.ymlに追加する。
- job_name: node
static_configs:
- targets:
# - localhost:9100 NG
- host.docker.internal:9100 # コンテナからホストのサービスへの通信のためlocalhostではなく、host.docker.internal
Prometheus再起動
cd ..
docker run --rm -d \
-p 9090:9090 \
-v $(pwd)/config:/etc/prometheus \
prom/prometheus
収集できているか確認
open http://localhost:9090
Node Exporterで確認したメトリクス名を入力
node_memory_total_bytes
Scraperが正しく動いているか確認
[Status] > [Targets]にてStateがUP
であるか確認する。
メトリクスの理解
メトリクスの種類については以下参照。
https://prometheus.io/docs/tutorials/understanding_metric_types/
その他 - docker実行時のバインドについて
# 設定ファイルをバインド
docker run --rm -d \
-p 9090:9090 \
-v $(pwd)/config/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
# ディレクトリをバインドする場合
docker run --rm -d \
-p 9090:9090 \
-v $(pwd)/config:/etc/prometheus \
prom/prometheus
コメント
コメントを投稿