在Prometheus的术语中,你能采集数据的一个端点endpoint称为实例instance,通常对应到单个进程。具有相同目的的实例集合,(例如:为了提高进程可靠性或进程扩展伸缩,将原有进程复制了一个.通俗的来说:多个机器上部署了多个相同的进程,比如说每个机器上都需要一个node_exporter,则这些可以合称为一个job)称为作业job
例如,一个API server的job,包含四个复制的instance:

  • job:api-server

    • instance1:1.2.3.4:5670
    • instance2:1.2.3.4:5671
    • instance3:5.6.7.8:5670
    • instance4:5.6.7.8:5671

      自动生成标签和时间序列

      当Prometheus采集目标时,它会自动的把一些标签贴在时间序列,用于识别收集的目标:

    • job:target属于配置的job name

    • instance:是采集target的URL的部分

如果在抓取的数据中已经存在这些标签,则行为取决于honor_labels配置选项。参考采集配置文档以获得更多信息。
对于每个实例,普罗米修斯都会在以下时间序列中存储一个样本:

  • 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 relabel 生效后剩余的样本数。
  • scrape_samples_scraped{job="<job-name>", instance="<instance-id>"}: target 暴露的样本数量。
  • scrape_series_added{job="<job-name>", instance="<instance-id>"}: 在一次抓取中新时序的大约数量。v2.10 新增。

up时间序列对于实例可用性监控很有用。