建立
Prometheus节点导出器已注册为具有各种标签的consul代理的服务。向领事代理提供的示例服务定义:
{ “服务”:{ “id”:“server-stats”, ” …
https://www.robustperception.io/extracting-full-labels-from-consul-tags/ 显示了如何执行此操作,特别是最后一个示例。
我认为我对普罗米修斯的标签如何运作有一个错误。我的 不正确 理解是:
regex
separator
target_label
replacement
但是,来自 布莱恩 - 巴西 的帖子链接在他的 回答 和普罗米修斯的文档,似乎发生了以下情况:
__meta
从这个想法和问题中的例子,我能够使以下配置工作
relabel_configs: - source_labels: [__meta_consul_tags] regex: '.*,a=([a-z0-9_]+),.+' target_label: 'a' replacement: ${1} - source_labels: [__meta_consul_tags] regex: '.*,b=([a-z0-9_]+),.+' target_label: 'b' replacement: ${1} - source_labels: [__meta_consul_tags] regex: '.*,c=([a-z0-9_]+),.+' target_label: 'c' replacement: ${1} - source_labels: [__meta_consul_tags] regex: '.*,d=([a-z0-9_]+),.+' target_label: 'd' replacement: ${1}
我相信这两种方法(布里安 - 巴西写的方法 他的博文 ,以及我上面使用的内容)有警告 - 我们要么事先知道我们想要的所有标签,要么有一定数量的标签。这意味着如果开发人员想要将不同或更多标签与他/她的服务相关联,他/她将需要使用操作,因为一般流程将无法处理它。我认为这是一个应该解决的小问题。