活学活用Prometheus(四):Prometheus metric类型

Prometheus提供的客户端库提供了四种核心metric类型,但这些类型目前只是在客户端库和wire protocol中进行区分。Prometheus server 并不区分这些类型,而是统一视为无类型的时间序列,这在未来可能会发生改变。

Counter

Counter 类型是表示一种样本数据单调递增的metric,即只增不减,除非监控系统重启。例如,可以使用 counter 类型的metric来表示服务的请求数、已完成的任务数、错误发生的次数等。

不要将 counter 类型应用于样本数据非单调递增的指标,例如:当前正在运行的进程数。

Gauge

Gauge 是一种表示单个数值的metric,可增可减。

Gauge 通常用于像当前温度或者当前内存使用量这些类型的指标数据,也可以表示能随时增加或减少的“总数”,例如:当前的并发请求数。

Histogram

Histogram在一段时间范围内对数据进行采样(通常是请求持续时间或响应数据大小),并计入到可配置的buckets中。后续可通过指定区间筛选样本,也可以统计样本总数,最后一般将数据展示为直方图。

Histogram 类型的样本会提供三种指标(假设指标名称为 <basename>):

  • 样本的值分布在 bucket 中的数量,命名为 <basename>_bucket{le="<上边界>"}。简单来说,这个值表示指标值小于等于上边界的所有样本数量

  • 所有样本值的大小总和,命名为 <basename>_sum

  • 样本总数,命名为 <basename>_count。值和 <basename>_bucket{le="+Inf"} 相同

可以通过 histogram_quantile() 函数来计算 Histogram 类型样本的分位数。Histogram 还可以用来计算应用性能指标值(Apdex score)。

注1:分位数可以理解为分割数据的点。举个例子,假设样本的 9 分位数(quantile=0.9)的值为 x,即表示小于 x 的采样值的数量占总体采样值的 90%

注2:bucket 可以理解为是对数据指标值域的一个划分,划分的依据应该基于数据值的分布。注意后面的采样点是包含前面的采样点的,假设 xxx_bucket{...,le="0.01"} 的值为 10,而 xxx_bucket{...,le="0.05"} 的值为 30,那么意味着这 30 个采样点中,有 10 个是小于 10 ms 的,其余 20 个采样点的响应时间是介于 10 ms 和 50 ms 之间的。

Summary

与 Histogram 类型类似,用于表示一段时间内的数据采样结果(通常是请求持续时间或响应大小等),但它直接存储了分位数(通过客户端计算,然后展示出来),而不是通过区间来计算。

Summary 类型的样本也会提供三种指标(假设指标名称为 <basename>):

  • 样本值的分位数分布情况φ-quantiles (0 ≤ φ ≤ 1),命名为 <basename>{quantile="<φ>"}

  • 所有样本值的大小总和,命名为 <basename>_sum

  • 样本总数,命名为 <basename>_count

可以看出 Histogram 与 Summary 的异同为:

  • 都包含了 <basename>_sum 和 <basename>_count 指标

  • Histogram 需要通过 <basename>_bucket 来计算分位数,而 Summary 则直接存储了分位数的值。

以上四种类型对应的Vector类型

Prometheus Metrics 中有一种将样本数据以标签(Label)为维度作切分的数据类型,称为Vector。四种基本类型也都有对应的 Vector 类型:

  • CounterVec

  • GaugeVec

  • HistogramVec

  • SummaryVec

Vector 相当于一组同名同类型的 Metrics,以 Label 做区分。Label 可以有多个,Prometheus 实际会为每个 Label 组合创建一个 Metric。Vector 类型记录数据时需先打 Label 才能调用 Metrics 的方法记录数据。

例如 HTTP 请求延迟指标,由于 HTTP 请求可在多个地区的服务器处理并且具有不同的方法,于是,可定义名称为 http_request_latency_seconds 的 SummaryVec,标签有region和method,用来表示不同地区服务器的不同请求方法的请求延迟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路多辛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值