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: 1mrelabel_configs:- regex: "(job|app|__scheme__)"replacement: ${1}_nameaction: labelmapmetric_relabel_configs:- source_labels:- __name__regex: "go_info.*" #刪除go_info開頭的指標action: drop
刪除前
刪除后