很多exporter的metrics的label不完整或语义不详,造成在prometheus显示的时候难以明白其metrics的具体含义。因此有必要在获取metrics的时候对metrics增加一些label,表明该metrics的具体含义。
例如:
kube_pod_container_resource_requests_cpu_cores{container="autoscaler",env="dev",idc="ali",instance="xx.xx.xx.xx:30101",job="kube-state-metrics",namespace="kube-system",node="k8s-master01-demo.ali.xxx.io",pod="dns-autoscaler-7f666fb487-v2c28"}
在该metrics中增加了env和idc两个label,指明该metric来自环境以及idc。
但上述添加label,prometheus配置文件中的target只能通过file_sd_configs中添加。
在正对k8s集群监控中,一般采用kubernetes_sd_configs对k8s集群做服务发现,这个时候在file_sd_configs起作用的labels属性就不能起作用。
在这种情况下,使用metric_relabel_configs:
metric_relabel_configs:
- source_labels: [container_name]
target_label: container
action: replace
- source_labels: [pod_name]
target_label: pod
action: replace
metric_relabel_configs使metrics中已有的label重新命名,保留原有的label,并将新的label添加到metrics中。
在上面例子中:
source_labels:为metri

在Prometheus监控中,为了使metrics更具语义性,通常需要在exporter获取metrics时添加或修改label。通过file_sd_configs可以方便地在静态配置中操作,但在kubernetes_sd_configs场景下,labels属性无法直接应用。此时,可以利用metric_relabel_configs进行metrics的label重命名和添加,例如将container_name转换为container,同时保留原有label,从而明确metrics的环境和IDC信息。
最低0.47元/天 解锁文章
516

被折叠的 条评论
为什么被折叠?



