4.2のPrometheusからの値取得について

お世話になります。
Zabbix4.2のPrometheusから取得した値によるLLDを試していますが、仕様上困った点があります。

本家サイトのマニュアルによると、保存前処理でPrometheus to JSONを行った後で
そのJSONに対してLLDなどの処理を行うとなっています。(以下)
https://zabbix.com/documentation/4.2/manual/discovery/low_level_discover...

が、おそらくはこのPrometheus to JSONの仕様で、
「Prometheus側でのメトリクス名=JSON側ではname:という変数名」に決め打ちされてしまいます。
(上のURLで言うところの"name": "wmi_logical_disk_free_bytes"です)

これで何が困るかというと、元のPrometheus側でnameというラベルを既に使っていた場合です。
JSONに変換すると、メトリクス名もラベル名も同じname:変数にされてしまい、その後の処理が進みません。

Zabbix側の正規表現で置換等できないかとも思ったんですが、最初に一致した1つだけなら置換できたものの
一致した全ての項目を置換する方法が見つけられませんでした。

何かうまいやり方はありませんでしょうか。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー nakaring の写真

自己解決しました。
例え同じラベル名であっても、ディスカバリルール→LLDマクロ→JSONPathの書き方だけで回避できる話でした。
(そもそもJSONの階層構造を正しく理解できていませんでした)

これだけだと何なので、今回の目的であった
「Prometheus(というかcAdvisor)からDockerコンテナをLLDした手順」を残しておきます。

今回は以下のようにテンプレートを作りました。
・HTTPエージェントアイテムを URL:http://{HOST.IP}:8080/metrics で作成。名前やキーは任意。
・ディスカバリルールを、上のアイテムの依存アイテムとして作成。
 保存前処理→PrometheusからJSON→パラメータ:container_cpu_user_seconds_total{name=~".+"}
 LLDマクロ→LLDマクロ:{#CONTAINER} JSONPath:$.labels['name']

あとはアイテムのプロトタイプで依存アイテムを作成、キー名を例えば container_cpu_user_seconds_total[{#CONTAINER}]
とかすれば、コンテナ毎のCPU使用時間を取ってくるようになりました。

板汚し失礼しました。