文档首页/ 华为云UCS/ 常见问题/ 容器智能分析/ 如何修改kube-state-metrics组件的采集配置?
更新时间:2023-06-01 GMT+08:00

如何修改kube-state-metrics组件的采集配置?

问题描述

kube-prometheus-stack插件的kube-state-metrics组件负责将Prometheus的metrics数据格式转换成K8s API接口能识别的格式。kube-state-metrics组件在默认配置下,不采集K8s资源的所有labels和annotation。如需采集则需要在启动参数中修改采集配置,并同时检查名称为kube-state-metrics的ServiceMonitor中采集白名单是否添加相应指标。

操作步骤

  1. 执行以下命令打开kube-state-metrics工作负载对应的YAML文件。

    kubectl edit deployment kube-state-metrics -nmonitoring

  2. 修改kube-state-metrics的启动参数。

    例如需要采集Pod的所有labels时,则将kube-state-metrics的启动参数修改为:

    --metric-labels-allowlist=pods=[*],nodes=[node,failure-domain.beta.kubernetes.io/zone,topology.kubernetes.io/zone]

    kube-state-metrics将开始采集Pod和Node的labels指标,并通过kubectl edit servicemonitor kube-state-metrics -nmonitoring查询kube_pod_labels是否在普罗的采集任务中。

    如需采集annotation,则在启动参数中以相同方法添加参数--metric-annotations-allowlist。

    参考文档:https://github.com/kubernetes/kube-state-metrics/blob/v2.2.3/docs/cli-arguments.md