抓取配置
scrape_configs、targets、labels。
35 分钟
抓取配置
Prometheus 的行为由 prometheus.yml 定义:抓谁、多久抓一次、附加哪些标签。配好 scrape,Targets 页才会全绿。
学习目标
- 编写
scrape_configs与static_configs - 理解
job、instance标签含义 - 让 CodeRoadMap backend 的
/actuator/prometheus被成功抓取
核心内容
完整示例
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ["localhost:9090"]
- job_name: coderoadmap-backend
metrics_path: /actuator/prometheus
static_configs:
- targets: ["host.docker.internal:8080"]
labels:
env: dev
app: backend
job 来自 job_name;instance 来自 targets 主机:端口。查询时可 sum by (job, env)(...)。
常见故障
| 现象 | 可能原因 |
|---|---|
| Target DOWN | backend 未启动或端口错 |
| 404 | metrics_path 未设或 Actuator 未暴露 prometheus |
| 超时 | 防火墙 / 容器网络不通 |
backend 需(见 prom-spring):
management:
endpoints:
web:
exposure:
include: health,prometheus,metrics
验证:curl -s http://localhost:8080/actuator/prometheus | head
标签与 relabel(了解)
生产常从 K8s 服务发现注入 namespace、pod 标签;裸 compose 用 static_configs 足够。集群内方案见 prom-k8s 与 helm-gitops-essentials。
# 概念:去掉不需要的高基数 label
# relabel_configs:
# - source_labels: [__address__]
# target_label: instance
练习
- 修改
scrape_interval为 30s,观察 Targets 的 Last Scrape - 在 Prometheus 查