このページは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: 全てのラベル名に対して正規表現マッチをし、マッチしなかったラベルはラベル集合から削除される
labeldropとlabelkeepを使うときには、ラベルが削除されてもメトリクスが確実にユニークにラベルされているように注意する必要がある
参考リンク
おすすめ書籍

入門 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件) を見る
和訳活動の支援
Prometheusドキュメント和訳が役に立った方は、以下QRコードからPayPayで活動を支援して頂けるとありがたいです。
