Prometheus 官网阅读笔记 概念篇

发布时间:2026/7/16 20:23:54
Prometheus 官网阅读笔记 概念篇 Prometheus 官网阅读笔记 概念篇2 概念2.1 数据模型Prometheus 从根本上将所有数据存储为时间序列属于相同指标 和 相同标签维度集 的 时间戳值流。除了存储的时间序列外Prometheus 还可以生成临时派生的时间序列作为查询的结果。指标名称和标签每个时间序列都由其 指标名称 和 称为标签的可选键值对 唯一标识。指标名称指标名称指被测量系统的一般特征例如http_requests_total 接收到的 HTTP 请求总数。指标标签标签使您能够捕获相同指标名称的不同实例。例如 /api/tracks 接口的所有请求。样本时间序列数据由样本构成每个样本由以下部分组成一个 float64 值一个毫秒精度的时间戳表示法给定一个指标名称和一组标签通常使用以下表示法来标识时间序列metric name{label namelabel value, ...}例如一个指标名称为 api_http_requests_total 且标签为 method“POST” 和 handler“/messages” 的时间序列可以这样写api_http_requests_total{methodPOST, handler/messages}2.2 指标类型Prometheus 客户端库提供了四种核心指标类型。Counter计数器计数器 (Counter)是一种累计指标代表一个单调递增的计数器 其值只能增加或者在重新启动时重置为零。例如您可以使用计数器来表示已服务的请求数、已完成的任务数或错误发生次数。请勿使用计数器来暴露可能会减少的值。例如不要将计数器用于当前运行的进程数而应使用仪表Gauge。各类插桩库关于计数器的使用文档GoJavaPythonRuby.NetRustGauge仪表盘仪表 (Gauge)是一种代表单个数值的指标该数值可以任意上升或下降。仪表通常用于测量值例如温度或当前内存使用情况但也用于可以增减的“计数”例如并发请求数。各类插桩库关于仪表的使用文档GoJavaPythonRuby.NetRustHistogram直方图有关直方图使用的详细信息以及与 摘要 的区别请参阅 直方图与摘要。Summary摘要有关 φ-分位数、摘要使用的详细解释以及与 直方图 的区别请参阅 直方图与摘要。2.3 任务和实例在 Prometheus 的术语中您可以抓取的端点被称为实例通常对应一个单一的进程。而具有相同目的例如为了可扩展性或可靠性而复制的进程的实例集合被称为任务。例如一个具有四个复制实例的 API 服务器任务任务api-server实例 11.2.3.4:5670实例 21.2.3.4:5671实例 35.6.7.8:5670实例 45.6.7.8:5671自动生成的标签和时间序列当 Prometheus 抓取目标时它会自动向抓取的时间序列添加一些标签用于标识被抓取的目标job目标所属的已配置任务名称。instance被抓取目标的 URL 中的host:port部分。