默认的, target的job标签设置为配置文件里的job_name的值;__address__设置为配置里的targets的值;
而instance标签的值,是重定义标签操作之后__address__的值
- job_name: 'kubernetes-kube-state'
kubernetes_sd_configs: # k8s service discovery 配置
- role: pod # 先找到所有的pod类型的资源,然后下面再做筛选
relabel_configs: #
- action: labelmap # 符合下面的正则表达式则保留
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace] # 符合这个标签,标签替换为kubernetes_namespace
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name
- source_labels: [__meta_kubernetes_pod_label_grafanak8sapp] # 找到带这个源标签的数据。这个标签是pod里label带上的
regex: .*true.* # 正则匹配这个标签的value
action: keep # 匹配成功的动作,这是是保留。不匹配就会drop。
- source_labels: ['__meta_kubernetes_pod_label_daemon', '__meta_kubernetes_pod_node_name']
regex: 'node-exporter;(.*)'
action: replace
target_label: nodename
- job_name: 'kubernetes-cadvisor'
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- source_labels: [__meta_kubernetes_node_address_InternalIP]
regex: (.+) # 不管这个源标签的value是什么,全部匹配
action: replace
target_label: __address__ # 将__address__替换掉,并加上:8090
replacement: ${1}:8090