我在网上搜索过,并没有一个例子显示它是如何完成的,所以对于后代 - 以下配置将删除标有“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
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 标签,其余的将被忽略。
metrics_method=prometheus-servlet
重新标签配置的文档可在此处获得: https://prometheus.io/docs/operating/configuration/#relabel_config 。
Consul服务发现配置的文档可在此处获得: https://prometheus.io/docs/operating/configuration/#consul_sd_config 。