当前位置:主页 > 查看内容

运维监控系统之Prometheus介绍及数据类型

发布时间:2021-06-27 00:00| 位朋友查看

简介:简介 Prometheus 是由 SoundCloud 开源监控告警解决方案,特别适合现在容器化的监控。 架构图 Prometheus的特点 多维数据模型,包含key/value标识标签的时间序列数据; PromQL,一种灵活的查询语言 ,内置的函数可以让我们快速运算得到我们想要的结果; 不依赖……

 简介

Prometheus 是由 SoundCloud 开源监控告警解决方案,特别适合现在容器化的监控


架构


Prometheus的特点

  • 多维数据模型,包含key/value标识标签的时间序列数据;
  • PromQL,一种灵活的查询语言 ,内置的函数可以让我们快速运算得到我们想要的结果;
  • 不依赖分布式存储,默认是本地存储,也可以选择远程读写;
  • 通过http请求拉取(pull)exporter数据;
  • 也可以通过网关(gateway)推送(push)数据;
  • 配置可以通过服务发现或静态配置发现监控目标;
  • 多种图形和仪表板支持模式,特别是grafana的支持,让我们可以快速完成好看的图表。

数据格式

prometheus存储的是时序数据:即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合。

时序(time series)是由名称(Metric)以及一组key/value标签定义的,具有相同的名字以及标签属于相同时序。

  • metric名字:表示需要记录的数据的名称以及数据类型,如http_request_total。时序的名字由 ASCII 字符,数字,下划线,以及冒号组成,它必须满足正则表达式 [a-zA-Z:][a-zA-Z0-9:]*, 其名字应该具有语义化,一般表示一个可以度量的指标,例如 http_requests_total, 可以表示 http 请求的总数。
  • 标签:用来表示一类资源,例如:同一个集群可以使用同一个标签,就可以通过标签获取到整个集群的同一个指标。
  • 指标值:按照某个时序以时间维度采集的数据,称之为样本。实际的时间序列,每个序列包括一个float64的值和一个毫秒级的unix 时间戳

Prometheus 四种指标类型

1.Counter (计算器):单调递增的指标,即只增不减,除非监控系统发生了重置。

2.Gauge(仪表盘):可以任意变化的指标,即可增可减。

3.Histogram(直方图):在一段时间范围内对数据进行采样,并将其计入可配置的存储桶中,后续可通过指定区间筛选样本,也可以统计样本总数,最后一般将数据展示为直方图,

  1. 样本的值分布在 bucket 中的数量,命名为 <basename>_bucket{le="<上边界>"}。解释的更通俗易懂一点,这个值表示指标值小于等于上边界的所有样本数量 
  2. 所有样本值的大小总和,命名为 <basename>_sum。 
  3. 样本总数,命名为 <basename>_count。值和 <basename>_bucket{le="+Inf"} 相同。 

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

  1. 样本值的分位数分布φ-quantiles (0 ≤ φ ≤ 1) 情况,命名为 <basename>{quantile="<φ>"
  2. 所有样本值的大小总和,命名为 <basename>_sum 

Histogram与Summary的异同

它们都包含了 _sum 和 _count 指标 Histogram 需要通过 _bucket来计算分位数,而 Summary 则直接存储了分位数的值。

总结

prometheus的数据格式规范,可以使用PromQL语句快速查询,特别是结合grafana,完成一个图表是分分钟的事情。


本文转载自网络,原文链接:https://www.toutiao.com/i6906859428272800260/
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐