任务和实例
在 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
- 实例 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。