设置
Prometheus节点导出器被注册为带有各种标签的consul代理的服务。提供给领事剂实施例的服务定义:在Prometheus中重新标记
{
"service":{
"id": "server-stats",
"name": "server-stats",
"tags": [
"a=1_meow",
"b=2_woof",
"c=3_moo",
"monkey"
],
"port": 9100,
"checks": [
{
"name": "Process #1",
"script": "/path/to/healthcheck/script.sh",
"interval": "5s"
}
]
}
}
普罗米修斯被设定为寻找这个server-stats
服务,并使用由领事提供的配置(主机地址和端口)来从服务器刮统计信息。以上标签在__meta_consul_tags
中以逗号分隔列表形式提供,可用于重新标记。
普罗米修斯重新贴标签的配置:
relabel_configs:
- source_labels: [__meta_consul_tags]
separator: ','
#regex: '(.+)=(.+)'
regex: '([a-z_]+)=([a-z_]+|\d+)'
target_label: ${1}
replacement: ${2}
问题
我试图揭露标签普罗米修斯这样我们就可以得到统计数据和基于标签的图表。考虑到上述服务配置,我希望每个度量标准除了Prometheus的内部标准外还有以下标签: a=1_meow
,b=2_woof
,c=3_moo
并忽略monkey
,因为它只是一个字符串。如果有需要=
的解决方案,我可以从我的标签列表中删除monkey
。上面所写的relabel配置并没有导致暴露任何标签,似乎被忽略。运行日志级别设置为调试的Prometheus也不会产生任何结果。
相关的文档
- https://prometheus.io/docs/operating/configuration/#%3Crelabel_config%3E
- https://www.robustperception.io/extracting-full-labels-from-consul-tags/
该链接已包含在我原始问题的相关文档中。它没有得到我所希望的。 – motomonger
链接完全覆盖你想要做的事情,你需要以书面形式使用它 - 而不是你发布的修改版本。 –
是的...我现在看到为什么需要做。我已经包括了我的理解以及我在回答中所做的工作。如果我在我的答案的某处出错,请纠正我。 – motomonger