不用采集规则就可以采集(Prometheusmetrics的入门介绍(二)-k/v的数据形式)

优采云 发布时间: 2021-10-20 18:19

  不用采集规则就可以采集(Prometheusmetrics的入门介绍(二)-k/v的数据形式)

  1、Prometheus 度量的概念

  2、k/v 数据格式

  3、Prometheus 导出器的使用(拉取表单 采集 数据)

  4、Prometheus pushgateway介绍(推送表单采集数据)

  在Prometheus监控中,来自采集的数据统称为metrics数据

  度量,熟悉大数据系统的人,从来没有听说过度量。当我们需要对某个系统中的某个服务进行监控和统计时,就需要用到Metrics。

  Metrics是采样数据的总称(metrics不代表特定的数据格式,而是度量单位的抽象)

  几种主要类型的指标

  最简单的指标是简单的返回值或瞬时状态。例如,我们想以更简单的方式衡量一个处理队列中的任务数量。

  例如:如果我想监控硬盘容量或内存使用情况,我应该使用 Gauges 的度量格式来衡量

  因为硬盘的容量或使用的内存量会随着时间的推移而不断地、瞬间地发生变化。

  这种变化是不规律的,目前是多少,采集又是多少

  不确定会不会继续增长,也不确定会不会继续减少。

  就这样了。这是所用仪表类型的代表。

  如图,CPU的波动是采集 Gauge形式的metrics数据不规则

  

  计数器类型指标

  计数器是一个计数器。它从数据量 0 开始,累加计算。理想状态下,只能永远增持,不会减持(某些特殊情况另说)

  例如

  例如,用户访问的抽样数据

  我们的产品被用户访问一次,10分钟后为1,累计到​​100

  一天后累积到20000

  一周后累积到100000-150000

  如下图所示。计数器数据从0开始,不断累加,不断累加,所以在理想状态下,没有任何减少的可能。

  最多只能保持一个不变(例如:用户不再访问,那么当前累计总访问量将保持为一条水平线,直到再次访问)

  下图显示了一个计数器类型的指标数据采集。采集 为用户累计访问量

  

  直方图

  直方图统计的分布。例如,最小值、最大值、中位数、中位数、第 75 个百分位数、第 90 个百分位数、第 95 个百分位数、第 98 个百分位数、第 99 个百分位数和第 99.9 个百分位数。

  这是一种特殊的度量数据类型,它代表一个

  近似百分比估计

  这是最难理解的指标类型(但它非常实用)。估计大部分数学家都会看上面几行的定义,header会很大。

  介绍什么是直方图数据

  直方图类型(prometheus其实提供了一个基于直方图算法的函数,可以直接使用),可以分别统计所有用户的响应时间~=0.05秒,多少个0~0. 05 多少秒,> 2 秒,> 10 秒 => 1%

  可以清楚地看到在当前系统中,有多少用户(或请求)处于基本正常状态,有多少是极速用户,有多少是慢速或有问题的请求

  k/v 数据格式

  Prometheus的数据类型是根据metric的类型计算的

  对于采集返回的数据类型,必须以特定的数据格式查看和使用

  看一个exporter采集服务器上的k/v格式metrics数据

  当导出器 (node_exporter) 安装并在受监控服务器上运行时

  使用简单的curl命令查看exporter采集的metrics数据,以k/v的形式显示并保存curl localhost:9100/metrics

  

  curl后输出的结果如上图

  Prometheus_server

  带#的那一行是注释行,解释下面的k/v值是什么采样数据

  而真正关心的是数据

  

  

  用空格分隔 KEY/Value 数据

  第一个代表采集的当前最大文件句柄数为65535

  第二个代表采集当前打开的文件句柄数为10。

  也看看这里

  

  第二行#告诉我们这个数据的metrics类型属于gaugeexporter的使用

  官网提供了丰富的成型导出器插件,可以使用

  举几个例子

  

  pushgateway的概念介绍

  导出器首先安装在被监控的服务器上并在后台运行

  然后自动采集系统数据,它本身是一个HTTP_server,可以由Prometheus服务器定期发送到HTTP GET以pull的形式获取数据

  如果你逆转这个过程

  push 18 pushgatewat 的形式是安装在客户端还是服务器上(其实安装在哪里都无所谓)

  pushgateway 本身也是一个 http 服务器

  运维用自己的脚本抓取自己想要的监控数据,然后push到pushgateway再pushgateway到prometheus服务器是反向的被动模式

  已经有了node_exporter采集这么强大的pull形式,为什么还需要pushgateway形式呢?

  1、 虽然出口商采集的类型已经很丰富了,但是我们还是需要大量的自制监测数据,不定期的自行定制

  2、exporter 由于采集的数据类型比较多,其实很多数据或者大部分数据其实并没有用到我们的监控中。使用pushgateway就是定义一段数据。采集着一节约资源

  3、 开发一个新的自定义pushgateway脚本比开发一个全新的exporter更简单、更快捷!!!(exporter的开发需要使用真正的编程语言,shell等快速脚本不行,需要了解很多Prometheus自定义编程格式才能开始做大量工作)

  4、虽然exporter已经很丰富了,但是我们需要的采集的形式还有很多,exporter不能提供,或者现有expoter不支持,但是如果用pushgateway的话可以随心所欲 灵活,可以随心所欲,而且非常快

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线