5章ラベル

ラベルはPrometheusの重要な構成要素であり、Prometheusを強力にしている要因のひとつである。この章では、ラベルとは何か、ソースはどこか、自分のメトリクスにラベルを追加するにはどうすればよいかを学ぶ。

5.1 ラベルとは何か

ラベルは、時系列データに関連付けられたキーバリューペアで、メトリクス名とともに時系列データを一意に識別する。このように言うと少しややこしいので、早速例を見てみよう。

パスで区切られたHTTPリクエストのためのメトリクスがある場合、Graphite†1のように、メトリクス名にパスを入れたくなるかもしれない。

[†1] Graphiteはアンダースコアではなくピリオドを使う。

http_requests_login_total
http_requests_logout_total
http_requests_adduser_total
http_requests_comment_total
http_requests_view_total

これでは、PromQLでメトリクスを操作するときに大変になってしまう。リクエスト全体の数を計算するためには、あらゆるHTTPパスを知っているか、コストがかかりそうな何らかの形のマッチング処理を行ってすべてのメソッド名を拾い上げる必要がある。そういうわけで、これは避けるべきアンチパターンとなっている。Prometheusは、このよくあるユースケースに対応するためにラベルという機能を用意している。上のような場合は、pathラベルを使えばよい。

http_requests_total{path="/login"} http_requests_total{path="/logout"} http_requests_total{path="/adduser"} ...

Get 入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.