prometheus 自动发现
默认的, 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