解读Prometheus指标类型

Prometheus 简介

Prometheus是SoundCloud公司开源的监控系统,同时也是继Kubernetes之后,第二个加入CNCF的项目,目前是监控领域比较成熟的一站式方案。Prometheus与其他监控方案的不同之处在于它是定时地从监控目标(Exporters)暴露的API中拉取指标,然后将这些数据保存到时序数据库中,如果是监控目标是动态的,可以借助服务发现的机制动态地添加这些监控目标,另外它还会暴露执行PromQL(用来操纵时序数据的语言)的API,其他组件,例如Prometheus Web,Grafana可以通过这个API查询对应的时序数据。虽然 Exporters 在采集端做了预聚合,这样损失了精确度,但大大减少数据量以及提升查询速度。

本文将重点介绍Prometheus指标类型,加深读者对Prometheus的认识和理解。

Prometheus 适用场景

Prometheus在记录纯数字时间序列方面表现非常好。它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。

Prometheus 不适用场景

如果需要对统计数据需要100%的精确,它并不适用,例如:它不适用于实时计费系统,此时更需要专业的时序数据库产品来替代。

Prometheus 部署

采用容器方式部署非常简单,仅仅需要一条命令即可。该部署方式为实验性方式不要在生产环境使用这种方式。

docker run \
    -p 9090:9090 \
    prom/prometheus

PromQL 查询原则

在介绍指标类型前,先了解下PromQL的查询原则:

  • 任意 PromQL 返回的结果都不是原始数据,即使查询一个具体的 Metric(如 go_goroutines),结果也不是原始数据
  • 任意 Metrics 经过 Function 计算后会丢失 __name__ Label
  • 子序列间具备完全相同的 Label/Value 键值对(可以有不同的 __name__)才能进行代数运算

特别强调一点,PromQL 在计算时使用的等距 interval 时间点,每个 interval 时间点的结果都是利用附近的采样点经过某种形式的估算或近似得到的,所以在 Prom 中提诸如“1:28:07 AM 发生了 113 次某种事件”是不准确的,PromQL 所有计算结果都存在误差。

 

 

Prometheus 指标类型

Counter

Counter可以简单理解为计数器,是个比较简单但又常用的类型。适用于生成请求次数、错误次数等指标。

比如prometheus暴露的http请求次数指标如下(打开/metrics查看)

# HELP prometheus_http_requests_total Counter of HTTP reques
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值