Prometheus支持多种方式的自动发现目标(targets),以下是一些常见的自动发现方式:
-
静态配置:您可以在Prometheus配置文件中直接列出要监测的目标。这种方式适用于目标相对稳定的情况下,例如固定的服务器或设备列表。
-
服务发现:Prometheus支持通过服务发现机制来自动发现目标。它可以与各种服务发现工具集成,如Kubernetes、Consul、Eureka和Zookeeper等。通过与这些工具的集成,Prometheus可以动态发现新的目标,以及监测服务的动态变化。
-
文件发现:您可以在文件中定义目标列表,并告知Prometheus读取该文件以自动发现目标。这种方式适用于您有一个更新频率较低的目标列表文件,并且不依赖于其他服务发现机制。
-
DNS发现:Prometheus支持通过DNS来自动发现目标。您可以配置Prometheus使用特定的DNS名称模式,例如基于子域名或标签,以自动解析目标。
-
EC2、GCP、Azure等云平台集成:如果您在云平台上托管您的目标(例如EC2实例、GCE实例或Azure虚拟机),Prometheus可以通过与这些云平台的API集成,自动发现和监测这些目标。
标签从写
- job_name: "grafana"
static_configs:
- targets: ["localhost:3000"]
relabel_configs:
- source_labels:
- __scheme__
- __metrics_path__
- __address__
regex: "(http|https)(.*)"
separator: ""
target_label: "endpoint"
replacement: "${1}://${2}"
action: replace
Prometheus会将目标的新标签"endpoint"设置为以"http://"或"https://"开头的值,例如:http://localhost:3000
。
- job_name: "node"
metrics_path: '/metrics'
scheme: "http"
consul_sd_configs:
- server: "192.168.1.50:8500"
tags:
# - "node_exporter"
- "node_export"
refresh_interval: 1m
relabel_configs:
- regex: "(job|app|__scheme__)"
replacement: ${1}_name
action: labelmap
metric_relabel_configs:
- source_labels:
- __name__
regex: "go_info.*" #删除go_info开头的指标
action: drop
删除前
删除后