【问题标题】:Prometheus: how to drop a target based on Consul tagsPrometheus:如何根据 Consul 标签删除目标
【发布时间】:2016-11-02 09:54:07
【问题描述】:

我的 Prometheus 服务器从 Consul 获取目标列表(或“服务”,用 Consul 的术语来说)。我只想监控这些目标的一个子集。这应该可以通过 Prometheus 的正则表达式机制实现,但正确的配置让我望而却步。这是怎么做到的?

【问题讨论】:

    标签: consul prometheus


    【解决方案1】:

    我浏览了网络,没有一个示例显示它是如何完成的,所以为了后代 - 以下配置将删除所有标有“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
    

    【讨论】:

    • 缺少冒号。 relabel_configs:
    【解决方案2】:

    我使用以下配置对问题使用了非常相似的解决方案。它允许只抓取具有特定标签的服务,而不是排除具有给定标签的服务。

    这是我配置的 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

    【讨论】:

      猜你喜欢
      • 2019-12-21
      • 1970-01-01
      • 2017-03-21
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多