このページはPrometheus公式ドキュメント和訳+αの一部です。
マシンロールのためのラベルはどう持つべきか?
ターゲットラベルがターゲットの生涯に渡って不変にすることが、Prometheusを使うときのベストプラクティスである。 他方で、Apacheサーバーであるマシンにまたがってメトリクスを集約すると便利である。 これをどうやってやるか?
Prometheusで鍵となる概念は、時系列の連続性が求められるということ、つまり、時系列のラベルが変わって別の時系列になってしまわないということである。 Chefのロールのようにマシンのロールが変わると変わってしまうものは、良いターゲットラベルではない。 ロールが変わるたびに、グラフが途切れてしまい、アラートはリセットされてしまう。
だが、これは、あるロールを持つマシンにまたがってCPU利用率のようなメトリクスを集約できないということを意味する。 幸いなことに、これは、textfile collectorとグループ修飾子で出来る。
一から始めることにして、node exporterをダウンロードし、textfile collectorと共に実行する。
wget https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz tar -xzf node_exporter-0.15.1.linux-amd64.tar.gz cd node_exporter-* mkdir textfile_collector ./node_exporter -collector.textfile.directory textfile_collector &
このマシンでpostfixとapacheを実行しているとする。 以下のように、それらのロールのメトリクスを追加する。
cat <<EOF > textfile_collector/roles.prom
machine_role{role="postfix"} 1
machine_role{role="apache"} 1
EOF
これは、普通、設定管理システムで行われるだろう。 http://localhost:9100/metrics を見てみると、新しいメトリクスが見つかるだろう。
次に、これをスクレイプするためのPrometheusサーバーを手早く準備する。
wget https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz
tar -xzf prometheus-2.0.0.linux-amd64.tar.gz
cd prometheus-*
cat <<'EOF' > prometheus.yml
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: 'node'
static_configs:
- targets:
- localhost:9100
EOF
./prometheus
もし、roleラベルが付与されたapacheロールのメトリクスが必要な場合、expressionブラウザでgroup_leftを使うことができる。
up * on (instance, job) group_left(role) machine_role{role="apache"}
こうすると普段通り集約できる。
sum by (job, role)(
up * on (instance, job) group_left(role) machine_role{role="apache"}
)
この手法で、ラベルをターゲットの生涯に渡って変更したときのような欠点を排して、ターゲットにラベルを付与する恩恵が得られる。 アプリケーションに対しても似たような方法で上手くいく。
翻訳元
おすすめ書籍

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング
- 作者: Brian Brazil,須田一輝,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/05/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る

- 作者: Mike Julian,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/01/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム
- 作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/08/12
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る