任务与实例

在 Prometheus 的术语中,你可以抓取的端点称为 实例 (instance),通常对应于单个进程。具有相同目的的一组实例(例如,为了可扩展性或可靠性而复制的进程集合)称为 任务 (job)

例如,一个具有四个复制实例的 API 服务器任务:

  • 任务 (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

自动生成的标签和时间序列

当 Prometheus 抓取目标时,它会自动为抓取的时间序列添加一些标签,用于标识被抓取的目标:

  • job: 目标所属的配置任务名称。
  • instance: 被抓取目标 URL 中的 <host>:<port> 部分。

如果抓取的数据中已经存在这些标签,其行为取决于 honor_labels 配置选项。更多信息请参阅 抓取配置文档

对于每次实例抓取,Prometheus 会在以下时间序列中存储一个 样本 (sample)

  • 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>"}: 应用指标重标记 (metric relabeling) 后剩余的样本数。
  • 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。

本页内容