用 Prometheus 的术语来说,可被抓取的端点称为实例,通常对应单个进程。具有相同用途的一组实例(例如,为实现可扩展性或可靠性而复制的进程)称为作业。
例如,一个有四个副本实例的 API 服务器作业:
- 作业: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
自动生成的标签和时间序列
当 Prometheus 抓取一个目标时,它会自动将一些标签附加到抓取到的时间序列上,这些标签用于标识被抓取的目标:
job
:目标所属的已配置作业名称。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>"}
:应用指标重标记后剩余的样本数量。scrape_samples_scraped{job="<job-name>", instance="<instance-id>"}
:目标暴露的样本数量。scrape_series_added{job="<job-name>", instance="<instance-id>"}
:此次抓取中新系列的大致数量。此指标自 v2.10 起新增。
up
时间序列对于实例可用性监控很有用。
启用 extra-scrape-metrics
功能标志后,还会有几个额外的指标可用:
scrape_timeout_seconds{job="<job-name>", instance="<instance-id>"}
:为目标配置的抓取超时时间。scrape_sample_limit{job="<job-name>", instance="<instance-id>"}
:为目标配置的样本限制数量。如果未配置限制,则返回 0。scrape_body_size_bytes{job="<job-name>", instance="<instance-id>"}
:如果抓取成功,为最近一次抓取响应的未压缩大小。因超出body_size_limit
导致抓取失败的情况报告为 -1,其他抓取失败情况报告为 0。