从普罗米修斯抓取中排除 Kubernetes 命名空间

Posted

技术标签:

【中文标题】从普罗米修斯抓取中排除 Kubernetes 命名空间【英文标题】:Exclude Kubernetes namespaces from prometheus scraping 【发布时间】:2021-12-11 08:48:55 【问题描述】:

我已经使用社区 helm chart 部署了 Prometheus,并希望从特定命名空间中抓取指标并从所有其他命名空间中删除指标。我使用了下面的抓取配置,但它似乎不起作用。还尝试使用 Drop 操作。

    - job_name: 'kubernetes-pods'
      kubernetes_sd_configs:
        - role: node
      relabel_configs:
        - action: keep
          source_labels: [__meta_kubernetes_namespace]
          target_label: accounts 

【问题讨论】:

您需要使用regex: accounts 而不是target_label: accounts 才能使keep 操作起作用。 这能回答你的问题吗? Monitor only one namespace metrics - Prometheus with Kubernetes 【参考方案1】:

试试这个:

- job_name: 'kubernetes-pods'
  kubernetes_sd_configs:
  - role: endpoints
  namespaces:
    names:
    - my-namespace-to-monitor

【讨论】:

用上面的配置试过了,还是一样的问题。【参考方案2】:

我发现了这样的东西:https://www.robustperception.io/dropping-metrics-at-scrape-time-with-prometheus

所以我会尝试将帖子中的示例更改为这样的:

scrape_configs:
  - job_name: 'kubernetes-pods'
    kubernetes_sd_configs:
      - role: node
    metric_relabel_configs:
      - source_labels: [ __meta_kubernetes_namespace ]
        regex: 'accounts'
        action: drop

【讨论】:

以上是关于从普罗米修斯抓取中排除 Kubernetes 命名空间的主要内容,如果未能解决你的问题,请参考以下文章

GKE Autopilot 上的普罗米修斯?

指标在普罗米修斯中不可见

我如何在普罗米修斯(kubernetes 监控)中获取(当前)已建立的 TCP 连接数

Apache Flink 在 UI 中显示自定义指标,但普罗米修斯指标报告器没有抓取它们

普罗米修斯的架构

在 prometheus 中排除 Kubernetes Metrics 监控