采集任务和实例
在 Prometheus 术语中,可以采集的端点被称为_实例_,它通常对应于单个进程。具有相同目的的一组实例,例如为了伸缩或可靠性而复制出来的进程,被称为采集任务(Job)。
例如,一个有四个复制实例的 api-server 采集任务:
- Job:
api-server
- 实例1:
1.2.3.4:5670
- 实例2:
1.2.3.4:5671
- 实例3:
5.6.7.8:5670
- 实例4:
5.6.7.8:5671
- 实例1:
自动生成的标签和时间序列
当 Prometheus 采集 Target 时,它会自动附加一些标签到采集的时间序列,以识别采集的 Target:
job
:配置的采集任务名称,Target 属于该采集任务。instance
:目标 URL 中的<host>:<port>
部分。
如果这些标签已经在采集的数据中存在,则行为取决于honor_labels
配置选项。有关更多信息,请参阅采集配置文档。
对于每个实例采集,Prometheus 存储以下时间序列的样本:
up{job="<job-name>", instance="<instance-id>"}
:如果实例健康(即可达),则值为1
;如果采集失败,则值为0
。scrape_duration_seconds{job="<job-name>", instance="<instance-id>"}
:采集的持续时间。scrape_samples_post_metric_relabeling{job="<job-name>", instance="<instance-id>"}
:应用指标重标签(relabel)后剩余的样本数。scrape_samples_scraped{job="<job-name>", instance="<instance-id>"}
:Target 暴露的样本数。scrape_series_added{job="<job-name>", instance="<instance-id>"}
:本次采集中新增的序列数。自 v2.10 版本起可用。
up
时间序列对实例可用性监控非常有用。
通过启用extra-scrape-metrics
特性标志,可以获得以下额外指标:
scrape_timeout_seconds{job="<job-name>", instance="<instance-id>"}
:为 Target 配置的scrape_timeout
。scrape_sample_limit{job="<job-name>", instance="<instance-id>"}
:为 Target 配置的sample_limit
。如果未配置限制,则返回零。scrape_body_size_bytes{job="<job-name>", instance="<instance-id>"}
:如果采集成功,则为最新的采集响应的未压缩大小。因为超出body_size_limit
导致采集失败的情况报告-1,其他采集失败报告0。
该文档基于 Prometheus 官方文档翻译而成。