Prometheus:如何根据 Consul 标签删除目标
Prometheus: how to drop a target based on Consul tags
我的 Prometheus 服务器从 Consul 获取目标列表(或 "services",用 Consul 的术语)。我只想监控这些目标的一个子集。这应该可以通过普罗米修斯的正则表达式机制来实现,但我不知道正确的配置。这是怎么做到的?
我在网上搜索了一下,没有一个例子说明它是如何完成的,所以为了后代 - 以下配置将删除所有标有 'ignore-at-prometheus' 标签的领事服务
# ignore consul services with 'ignore_at_prometheus' tag
# https://www.robustperception.io/little-things-matter/
relabel_configs:
- source_labels: ['__meta_consul_tags']
regex: '(.*),ignore-at-prometheus,(.*)'
action: drop
我使用以下配置对问题使用了非常相似的解决方案。它允许仅抓取具有特定标签的服务,而不是排除具有给定标签的服务。
这是我配置的 scrape_configs
部分:
scrape_configs:
- job_name: 'consul_registered_services'
scrape_interval: 5s
metrics_path: '/prometheus'
consul_sd_configs:
- server: 'my-consul-server:8500'
token: 'xyz'
relabel_configs:
- source_labels: ['__meta_consul_tags']
regex: '^.*,metrics_method=prometheus-servlet,.*$'
action: keep
- source_labels: ['__meta_consul_node']
target_label: instance
- source_labels: ['__meta_consul_service']
target_label: service
- source_labels: ['__meta_consul_tags']
target_label: tags
然后我确保使用 metrics_method=prometheus-servlet
标签注册所有相关服务,其余的将被忽略。
重新标记配置的文档可在此处获取:https://prometheus.io/docs/operating/configuration/#relabel_config。
此处提供了 Consul 服务发现配置的文档:https://prometheus.io/docs/operating/configuration/#consul_sd_config。
我的 Prometheus 服务器从 Consul 获取目标列表(或 "services",用 Consul 的术语)。我只想监控这些目标的一个子集。这应该可以通过普罗米修斯的正则表达式机制来实现,但我不知道正确的配置。这是怎么做到的?
我在网上搜索了一下,没有一个例子说明它是如何完成的,所以为了后代 - 以下配置将删除所有标有 'ignore-at-prometheus' 标签的领事服务
# ignore consul services with 'ignore_at_prometheus' tag
# https://www.robustperception.io/little-things-matter/
relabel_configs:
- source_labels: ['__meta_consul_tags']
regex: '(.*),ignore-at-prometheus,(.*)'
action: drop
我使用以下配置对问题使用了非常相似的解决方案。它允许仅抓取具有特定标签的服务,而不是排除具有给定标签的服务。
这是我配置的 scrape_configs
部分:
scrape_configs:
- job_name: 'consul_registered_services'
scrape_interval: 5s
metrics_path: '/prometheus'
consul_sd_configs:
- server: 'my-consul-server:8500'
token: 'xyz'
relabel_configs:
- source_labels: ['__meta_consul_tags']
regex: '^.*,metrics_method=prometheus-servlet,.*$'
action: keep
- source_labels: ['__meta_consul_node']
target_label: instance
- source_labels: ['__meta_consul_service']
target_label: service
- source_labels: ['__meta_consul_tags']
target_label: tags
然后我确保使用 metrics_method=prometheus-servlet
标签注册所有相关服务,其余的将被忽略。
重新标记配置的文档可在此处获取:https://prometheus.io/docs/operating/configuration/#relabel_config。
此处提供了 Consul 服务发现配置的文档:https://prometheus.io/docs/operating/configuration/#consul_sd_config。