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

  

原文地址:https://www.cnblogs.com/jabbok/p/13497967.html