プロメテウスの監視と学習の道(3)
リマーク
ターゲットに注意する
ターゲットのリマークは、データキャプチャの前にターゲットラベルを動的に書き換える強力なツールです。各データキャプチャ構成では、複数のラベル変更ステップを定義でき、定義されたブックの順序に従って順番に実行されます。
検出されたターゲットごとに、Prometheusはデフォルトで次の操作を実行します。
- ジョブのラベルは、ジョブが属するjob_nameの値に設定されます
- __address__タグの値は、ターゲット「<host>:<port>」のソケットアドレスです。
- インスタンスラベルの値は__address__の値です
- __scheme__タグの値は、ターゲットのインジケーターをクロールするときに使用されるプロトコル(httpまたはhttps)です。
- __metrics_path__タグの値は、ターゲットでメトリックをクロールするときに使用されるURLパスです。デフォルトは「/ metrics」です。
- __param_ <name>タグの値は、渡されたURLパラメーターの<name>という名前の最初のパラメーターの値です。
再マーキング期間中は、ターゲットの「__meta__」で始まるメタタグも使用できます。各サービス検出メカニズムによってターゲットに追加されるメタタグは異なります。
再ラベル付けが完了すると、「__」で始まるターゲット上のすべてのラベルが削除されます。再ラベル付けプロセス中にラベルの値を一時的に保存する必要がある場合は、ラベル名「__tmp」で保存する必要があります。同じPrometheusの組み込みラベルが競合しています。
基本構成の再マーキング
パラメータ | 詳細 |
---|---|
source_labels | それらの既存のタグを引用してください、あなたは複数を引用することができます |
target_label | 参照されているラベルを新しいラベルに割り当てます |
セパレーター | 複数のタグを参照するときに使用するコネクタの種類。デフォルトは「;」です。 |
正規表現 | 参照ラベルの値に対して定期的な照合を実行すると、照合された値をtarget_labelに割り当てることができます。 |
アクション | 一致した結果に対して実行する必要のある操作。デフォルトは「置換」です。 |
置換 | 正規表現と一致する値に等しい |
アクションフィールドはアクションを実行できます
タグ値を置き換えます:
- replaceは、最初にsource_labelsで指定された各ラベルの値を連結し、次にregexフィールドの正規表現をsource_labelsと照合します。一致する場合は、target_labelフィールドで定義されたラベル値をreplacementフィールドに保存された値に置き換えます。
- Hashmodはtarget_labelsの値をハッシュ値に設定し、ハッシュはmodulesフィールドで指定されたハッシュモジュールによって生成され、source_labelsの各ラベルのシリアル値を計算します。
インジケーターの削除:ここでの各インジケーター名はターゲットに対応します
- 正規表現がターゲットのsource_labelsの各ラベルのシリアル値と一致しない場合は、ターゲットを削除してください。
- ドロップ、正規表現がターゲットのsource_labelsの各ラベルのシリアル値と一致する場合は、ターゲットを削除します
ラベルの作成または削除:
- labelmapは、正規表現をすべてのラベル名に一致させ、一致したラベルの値を置換フィールドで指定されたラベル名に割り当てます。通常、一致したラベルの一部を取り出して新しいラベルを生成するために使用されます。
- labeldrop、正規表現をすべてのラベル名に一致させると、一致したラベルがターゲットラベルセットから削除されます
- labelkeep、正規表現はすべてのラベル名と一致し、一致できないラベルはターゲットのラベルセットから削除されます
注:ラベルドロップまたはラベルキープ操作後も、残りのラベルセットがインジケーターに一意のラベルを付けることができることを確認してください
発言例
rplace
Prometheus構成ファイルを変更する
- job_name: 'consul-node'
consul_sd_configs:
- server: "192.168.0.181:8500"
tags:
- "nodes"
refresh_interval: 2m
relabel_configs:
- source_labels:
- __scheme__
- __address__
- __metrics_path__
regex: "(http|https)(.*)"
separator: ""
target_label: "endpoint"
replacement: "${1}://${2}"
action: replace
説明:一致する「__scheme __、__ address __、__ metrics_path__」これらの3つのタグにはhttpまたはhttpsとタグ内のすべての値が含まれ、置換を使用して一致した値を再編成し、target_labelのエンドポイントに割り当てます
Prometheusを再起動して、新しく作成されたタグを表示します
ラベルマップ
- job_name: 'consul-node'
consul_sd_configs:
- server: "192.168.0.181:8500"
tags:
- "nodes"
refresh_interval: 2m
relabel_configs:
- regex: "(job|app)"
replacement: ${1}_name
action: labelmap
再マーキング前:再マーキング後:
説明:ターゲット上のすべてのラベルを一致させます。一致したラベルについては、ラベルの名前をプレフィックスとして、「_ name」で終わる新しいラベル名が生成されます。値元のラベルの値と同じです
インデックス名のラベル変更操作
落とす
- job_name: 'consul-node'
consul_sd_configs:
- server: "192.168.0.181:8500"
tags:
- "nodes"
refresh_interval: 2m
metric_relabel_configs:
- source_labels:
- __name__
regex: "go_memstats.*"
action: drop
生成する前にメトリックを確認してください。
生成後のメトリックの表示: