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"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
Prometheus设置为寻找该server-stats服务,并使用Consul提供的配置(主机地址和端口)从服务器中获取统计信息。上面的标记可用作逗号分隔的列表__meta_consul_tags,可用于重新标记。
Prometheus重新标记配置:
relabel_configs:
- source_labels: [__meta_consul_tags]
separator: ','
#regex: '(.+)=(.+)'
regex: '([a-z_]+)=([a-z_]+|\d+)'
target_label: ${1}
replacement: ${2}
Run Code Online (Sandbox Code Playgroud)
我正在尝试向Prometheus公开标签,以便我们可以基于标签获取统计信息和图表。保持上述服务配置这一点,我想每个指标有下列标签除了任何普罗米修斯做内部:
a=1_meow,b=2_woof,c=3_moo和忽略monkey,因为它只是一个字符串。monkey如果有解决方案,我可以从标签列表中删除=。上面编写的relabel配置根本不会导致暴露任何标签,并且似乎被忽略了。在日志级别设置为调试的情况下运行Prometheus也不会产生任何结果。