如何修改kube-state-metrics组件的采集配置?
问题描述
kube-prometheus-stack插件的kube-state-metrics组件负责将Prometheus的metrics数据格式转换成K8s API接口能识别的格式。kube-state-metrics组件在默认配置下,不采集K8s资源的所有labels和annotation。如需采集则需要在启动参数中修改采集配置,并同时检查名称为kube-state-metrics的ServiceMonitor中采集白名单是否添加相应指标。
操作步骤
- 执行以下命令打开kube-state-metrics工作负载对应的YAML文件。
kubectl edit deployment kube-state-metrics -nmonitoring
- 修改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