快捷搜索:  汽车  科技

prometheus监控原理:运维监控系统之Prometheus介绍及数据类型

prometheus监控原理:运维监控系统之Prometheus介绍及数据类型prometheus的数据格式规范,可以使用PromQL语句快速查询,特别是结合grafana,完成一个图表是分分钟的事情。

简介

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

prometheus监控原理:运维监控系统之Prometheus介绍及数据类型(1)

架构图

prometheus监控原理:运维监控系统之Prometheus介绍及数据类型(2)

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监控原理:运维监控系统之Prometheus介绍及数据类型(3)

Prometheus 四种指标类型
  1. Counter (计算器):单调递增的指标,即只增不减,除非监控系统发生了重置。
  2. Gauge(仪表盘):可以任意变化的指标,即可增可减。
  3. Histogram(直方图):在一段时间范围内对数据进行采样,并将其计入可配置的存储桶中,后续可通过指定区间筛选样本,也可以统计样本总数,最后一般将数据展示为直方图,

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

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

样本值的分位数分布φ-quantiles (0 ≤ φ ≤ 1) 情况,命名为 <basename>{quantile="<φ>"} 所有样本值的大小总和,命名为 <basename>_sumHistogram与Summary的异同

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

总结

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

prometheus监控原理:运维监控系统之Prometheus介绍及数据类型(4)

猜您喜欢: