在 Prometheus 术语中,你可以抓取的端点称为_实例_(instance),通常对应于单个进程。具有相同目的的一组实例,例如为了可扩展性或可靠性而复制的进程,称为_作业_(job)。
例如,一个拥有四个复制实例的 API 服务器作业:
- job:
api-server- instance 1:
1.2.3.4:5670 - instance 2:
1.2.3.4:5671 - instance 3:
5.6.7.8:5670 - instance 4:
5.6.7.8:5671
- instance 1:
自动生成的标签和时间序列
当 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_timeout值。scrape_sample_limit{job="<job-name>", instance="<instance-id>"}:目标配置的sample_limit值。如果没有配置限制则返回零。scrape_body_size_bytes{job="<job-name>", instance="<instance-id>"}:最近一次成功抓取响应的未压缩大小。因超出body_size_limit而失败的抓取报告 -1,其他抓取失败报告 0。