Kubernetes 只监视一个名称空间吊舱-Prometheus&;库伯内特斯;cadvisor

Kubernetes 只监视一个名称空间吊舱-Prometheus&;库伯内特斯;cadvisor,kubernetes,prometheus,cadvisor,Kubernetes,Prometheus,Cadvisor,我在kubernetes上部署了istio,并从istio插件安装了普罗米修斯。我的目标是只监视一个应用程序的一些pod(比如bookinfo应用程序的所有pod)。监控pods的作业定义如下: - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes-cadvisor kubernetes_sd_configs:

我在kubernetes上部署了istio,并从istio插件安装了普罗米修斯。我的目标是只监视一个应用程序的一些pod(比如bookinfo应用程序的所有pod)。监控pods的作业定义如下:

    - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      job_name: kubernetes-nodes-cadvisor
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      - replacement: kubernetes.default.svc:443
        target_label: __address__
      - regex: (.+)
        replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
        source_labels:
        - __meta_kubernetes_node_name
        target_label: __metrics_path__
      scheme: https
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true

我的问题是,我不知道如何只监视一个名称空间的pod。例如,我将bookinfo应用程序部署在名为Book的命名空间中。我只想要命名空间手册中的POD度量。然而,普罗米修斯将收集节点的所有pods度量。我不想像这样更改应用程序的注释,而是想知道是否有一种方法可以通过更改上面的作业定义来只选择一个名称空间。或者是否有某种方法可以通过其标签来选择监视器吊舱?

以下内容将使用标签匹配所有目标吊舱:
some\u label
使用任何值

relabel_configs:
  - action: keep
    source_labels: [__meta_kubernetes_pod_label_some_label]
    regex: (.*)
如果要使用标签:
monitor
和值:
true
保留目标,您可以执行以下操作:

relabel_configs:
  - action: keep
    source_labels: [__meta_kubernetes_pod_label_monitor]
    regex: true
所有与之不匹配的吊舱将从刮削中掉落

您应该能够对名称空间执行相同的操作:

relabel_configs:
  - action: keep
    source_labels: [__meta_kubernetes_namespace]
    regex: Book

编辑>

有没有办法将[container\u label\u io\u kubernetes\u container\u name]标签更改为“container\u name”

试试这个:

relabel_configs:
  - action: replace
    source_labels: [container_label_io_kubernetes_container_name]
    target_label: container_name

这一切都在

中解释过。我在cadvisor的文档中找到了一个方法。
它说我们可以更改参数“--docker\u only”和“--raw\u cgroup\u prefix\u whitelist”来选择要监视的容器。

非常感谢您的回答。这正是我需要的。嗨,我还有一个问题。我尝试使用cadvisor守护程序。但是标签很长。例如,'container_label_io_kubernetes_container_name=“istio proxy”',是否有办法将标签更改为“container_name”?@gxh检查编辑