Prometheus 抓取目标(Target)是什么?
Target 是 Prometheus 定时抓取的指标端点(IP:端口+路径),来自 static_configs 或服务发现,可在 Targets 页查看健康状态。本文讲清 Target 与 Job 的关系、up 指标与常见异常状态。
Target 就是一个被抓取的 HTTP 端点(如 10.0.0.1:9100/metrics)——Prometheus 按抓取间隔定时访问它、拉取指标文本、存入 TSDB;每个 Target 的健康状态用 up 指标表示。
Target 与 Job 的关系
- Job:一组同类 Target 的逻辑集合(如
job="node"代表所有节点 exporter); - Target:Job 下的单个端点,带上
instance标签区分。
一个 Job 里可以有成百上千个 Target。
Target 从哪来
- static_configs:配置文件里写死;
- 服务发现:
kubernetes_sd_configs、consul_sd_configs、file_sd 等动态发现,扩缩容自动增删 Target。
健康检查:up 指标
每抓一个 Target,Prometheus 自动生成 up 序列:成功为 1、失败为 0。最简单的存活告警:
up == 0
Targets 页面(Status → Targets)能看到每个 Target 的状态、最近错误与耗时。
常见异常状态
DOWN:连接失败/超时/非 200 响应——查网络、端口、防火墙;- 指标解析失败:目标返回的不是合法指标文本(如返回了 HTML 错误页)。
观测云对照
观测云 DataKit 的采集对象与 Target 概念对应,但健康状态直接在控制台可视化呈现:采集是否正常、数据量、错误原因一目了然,无需查 up 指标。
常见问题(FAQ)
Q:Target 太多会怎样? 单实例几千 Target 是常见上限,超过就分片(hashmod)或用联邦/Agent 模式。
Q:如何临时摘了一个 Target? 从配置/服务发现中移除;file_sd 场景改文件即热生效。