更新时间:2019-07-04 10:59
下面将对 Prometheus 中的数据模型,metric 类型以及 instance 和 job 等概念进行介绍,以便用户在 Prometheus 的配置和使用中可以有一个更好的理解。
Prometheus 中存储的数据为时间序列,是由 metric name (指标名称) 和一系列的 labels (标签键值对) 来唯一标识的,不同的标签则代表不同的时间序列。
时间线表示:
<metric name> { <label name>=<label value>, … }
例如:
http_requests_total{method="POST", endpoint="/api/tracks"}
Prometheus 客户端库主要提供四种主要的 metric 类型:
例如,查询 http_requests_total{method=”get”, job=”Prometheus”, handler=”query”} 返回 8,10 秒后,再次查询,则返回 14。
例如:go_goroutines{instance=”172.17.0.2”, job=”Prometheus”} 返回值 147,10 秒后返回 124。
例如,查询 http_request_duration_microseconds_sum{job=”Prometheus”, handler=”query”} 时,返回结果如下:
下面以实际的 metric 为例,对上述概念进行说明。
如上图所示,这三个 metric 的名字都一样,他们仅凭 handler 标签不同而被标识为不同的 metrics。这类 metrics 只会向上累加,是属于 Counter 类型的 metric,且 metrics 中都含有 instance 和 job 这两个标签。
instance: 一个单独 scrape 的目标, 一般对应于一个进程。
jobs: 一组同种类型的 instances(主要用于保证可扩展性和可靠性),例如:
#job 和 instance的关系
job: api-server
instance 1: 1.2.3.4:5670
instance 2: 1.2.3.4:5671
instance 3: 5.6.7.8:5670
instance 4: 5.6.7.8:5671
在文档使用中是否遇到以下问题
更多建议
匿名提交