Prometheus

55479
下载
Prometheus 是一个开源的监控和告警系统,专注于时间序列数据的采集与存储。由 SoundCloud 开发,配备高级查询语言PromQL,便于数据挖掘与分析,并无缝对接多种可视化平台。

采集任务和实例


在 Prometheus 术语中,可以采集的端点被称为_实例_,它通常对应于单个进程。具有相同目的的一组实例,例如为了伸缩或可靠性而复制出来的进程,被称为采集任务(Job)。

例如,一个有四个复制实例的 api-server 采集任务:

  • 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 采集 Target 时,它会自动附加一些标签到采集的时间序列,以识别采集的 Target:

  • job:配置的采集任务名称,Target 属于该采集任务。
  • 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>"}:应用指标重标签(relabel)后剩余的样本数。
  • scrape_samples_scraped{job="<job-name>", instance="<instance-id>"}:Target 暴露的样本数。
  • scrape_series_added{job="<job-name>", instance="<instance-id>"}:本次采集中新增的序列数。自 v2.10 版本起可用。

up时间序列对实例可用性监控非常有用。

通过启用extra-scrape-metrics特性标志,可以获得以下额外指标:

  • scrape_timeout_seconds{job="<job-name>", instance="<instance-id>"}:为 Target 配置的scrape_timeout
  • scrape_sample_limit{job="<job-name>", instance="<instance-id>"}:为 Target 配置的sample_limit。如果未配置限制,则返回零。
  • scrape_body_size_bytes{job="<job-name>", instance="<instance-id>"}:如果采集成功,则为最新的采集响应的未压缩大小。因为超出body_size_limit导致采集失败的情况报告-1,其他采集失败报告0。

该文档基于 Prometheus 官方文档翻译而成。


observability.cn Authors 2024 | Documentation Distributed under CC-BY-4.0
Copyright © 2017-2024, Alibaba. All rights reserved. Alibaba has registered trademarks and uses trademarks.
浙ICP备2021005855号-32