<relabel_config> - Prometheusドキュメント

このページはPrometheus公式ドキュメント和訳+αの一部です。

リラベルは、監視対象のラベル集合を、scrapeされる前に、動的に書き換えるための強力な手段である。 scrapeの設定毎に複数のリラベルのステップを設定できる。 それらのステップは、各監視対象のラベル集合に、設定ファイルに出てくる順に適用される。

まずはじめに、監視対象毎に設定されたラベルを除いて、対応するscrapeの設定のjob_nameの値にjobラベルがセットされる。 __address__ラベルが監視対象のアドレス<host>:<port>にセットされる。リラベルの後で、instanceラベルがセットされていなければ、デフォルトで__address__の値にセットされる。__scheme__ラベルと__metrics_path__ラベルはそれぞれ、監視対象のスキームとメトリクスのパスにセットされる。__param_<name>ラベルは、<name>という名前で渡された最初のURLパラメーターの値にセットされる。

リラベルの過程で、__meta_プリフィックスされたラベルが利用可能な場合がある。そういうラベルは、その監視対象を提供しているサービスディスカバリーの仕組みによってセットされる。それらのラベルはサービスディスカバリーの仕組みによって異なる。

__で始まるラベルは、リラベル完了後にラベル集合から取り除かれる。

もしリラベルの過程で(後続の理ラベルの入力として)一時的にラベルの値を保存する必要があるなら、__tmpというプリフィックスを使うこと。このプリフィックスはPrometheus自体には使われないことが保証されている。

# 存在しているラベルから値を選択する。それらの内容は、設定されたseparatorで連結され、置
# 換、保存、削除のために、設定された正規表現にマッチングされる。
[ source_labels: '[' <labelname> [, ...] ']' ]

# Separator placed between concatenated source label values.
[ separator: <string> | default = ; ]

# replaceで、結果の値を書き込むためのラベル
# replaceする場合は、必須項目。正規表現のキャプチャされたグループ利用可能
[ target_label: <labelname> ]

# Regular expression against which the extracted value is matched.
[ regex: <regex> | default = (.*) ]

# Modulus to take of the hash of the source label values.
[ modulus: <uint64> ]

# 置換する値。正規表現がマッチした場合、この値で正規表現置換される。
# 正規表現でキャプチャされたグループが利用可能
[ replacement: <string> | default = $1 ]

# Action to perform based on regex matching.
[ action: <relabel_action> | default = replace ]

<regex>は、RE2で書かれた正しい正規表現である。 これは、replace、keep、drop、labelmap、labeldrop、labelkeepのアクションのために必須である。 この正規表現は、両端がアンカーされている。アンカーをなくすためには、.*<regex>.*を使うこと。

<relabel_action>は、リラベルのアクションを決める。

  • replace: 連結されたsource_labelsに対して正規表現マッチをし、target_labelの値をreplacementにセットする。replacementのグループ参照(${1}${2}など)はそれらの値で置換される。
  • keep: 正規表現が連結されたsource_labelsにマッチしないターゲットをdropする
  • drop: 正規表現が連結されたsource_labelsにマッチするターゲットを削除する
  • hashmod: target_labelの値を、連結されたsource_labelsのハッシュをmodulusでmodした値にセットする
  • labelmap: 全てのラベル名に対して正規表現マッチをし、マッチしたラベルの値をreplacementで指定されたラベルにコピーする。replacementのグループ参照(${1}${2}など)はそれらの値で置換される。
  • labeldrop: 全てのラベル名に対して正規表現マッチをし、マッチしたラベルはラベル集合から削除される
  • labelkeep: 全てのラベル名に対して正規表現マッチをし、マッチしなかったラベルはラベル集合から削除される

labeldroplabelkeepを使うときには、ラベルが削除されてもメトリクスが確実にユニークにラベルされているように注意する必要がある

参考リンク

おすすめ書籍

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

和訳活動の支援

Prometheusドキュメント和訳が役に立った方は、以下QRコードからPayPayで活動を支援して頂けるとありがたいです。

PayPayによる支援用QRコード
上のQRコードからPayPayによる支援