
# 如何修改kube-state-metrics组件的采集配置？
#### 问题描述
kube-prometheus-stack插件的kube-state-metrics组件负责将Prometheus的metrics数据格式转换成Kubernetes API接口能识别的格式。kube-state-metrics组件在默认配置下，不采集Kubernetes资源的所有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>
   
   
 
