Prometheus之数据类型和函数

news2024/9/20 14:55:33

前言:

在了解Prometheus数据类型前,我们先了解下面几个统计学名词概念:

平均数(Mean):

平均数是所有数据加起来除以数据个数得到的结果。它表示数据的中心趋势。

最大值(Maximum):

最大值是数据集中最大的数值。它表示数据的上限。

最小值(Minimum):

最小值是数据集中最小的数值。它表示数据的最小极限。

中位数(Median):

中位数是将数据从小到大排序后,位于中间位置的数值。如果数据个数是奇数,则中位数是中间的数值;如果数据个数是偶数,则中位数是中间两个数值的平均值。

百分位数(Quantile)

概念

百分位数(Percentile)是一种统计学上的概念,用来描述一组数据中某个数值相对于整个数据集的位置。具体来说,一个百分位数表示的是有百分之几的数据值小于或等于这个数值,

计算方法:

  1. 排序:将数据集从小到大排序
  2. 定位:计算百分位数的位置,通常使用以下公式:
    在这里插入图片描述
  3. 插值:如果计算的位置是整数,则直接取该位置的数据值;如果位置是小数,则进行线性插值。
  4. 示例:
    在这里插入图片描述

Prometheus数据类型:

Prometheus 是一个强大的开源监控和警报工具,其核心是时间序列数据模型。在 Prometheus 中,数据类型主要分为以下四种基本类型,每种类型都适用于不同的监控场景:

Counter(计数器)

定义:

Counter 是一个单调递增的指标,通常用于追踪某个事件的总数,如请求次数、任务完成次数等。

特点:

Counter 的值只能增加或者重置为0,不能减少。当监控重启或者重置时,Counter 可以被重置。

使用场景:

适用于统计总量,如HTTP请求的总次数、数据库查询的总次数等。

Gauge(仪表盘)

定义:

Gauge 是一个可以任意变化的指标,它反映了某个时刻的实时值,如系统的负载、内存使用率、当前活跃用户数等。

特点:

Gauge 的值可以增加、减少或者重置,能够反映资源的实时状态。

使用场景:

适用于表示资源的实时状态或者变化,如CPU使用率、磁盘空间占用、队列长度等。

Histogram(直方图)

定义:

Histogram 用于追踪一段时间内的数据分布情况,它将数据分桶(bucket)存储,每个桶记录了特定范围内数据的数量。

特点:

Histogram 可以提供数据的分布情况,包括最小值、最大值、平均值、中位数等统计信息。

使用场景:

适用于分析数据的分布,如请求的响应时间、数据库查询延迟等。

Summary(摘要)

定义:

Summary 类似于 Histogram,但它提供了一个滑动时间窗口内的数据摘要,包括总数和样本的定量统计信息。

特点:

Summary 提供了样本的总数和分位数统计,如平均数、中位数、90百分位数等。

使用场景:

适用于需要实时计算分位数和统计信息的场景,如HTTP请求的响应时间分布。

Prometheus 函数

Prometheus 提供了丰富的函数库,可以用于对时间序列数据进行各种操作和计算。以下是一些常用的 Prometheus 函数和它们的简要说明:

聚合操作

  1. sum()
  • 作用:
    计算一组时间序列的和。
  • 示例:
sum(rate(http_requests_total[5m])) 

计算过去5分钟内 HTTP 请求数量的总和。

  1. avg()
  • 作用:
    计算一组时间序列的平均值。
  • 示例:
avg(cpu_usage{job="app"}) 

计算所有名为 “app” 的作业的 CPU 使用率的平均值。

  1. min()
  • 作用:
    计算一组时间序列的最小值。
  • 示例:
min(memory_usage) 

获取内存使用率的最小值。

  1. max()
  • 作用:
    计算一组时间序列的最大值。
  • 示例:
max(disk_io)

获取磁盘 I/O 的最大值。

  1. count()
  • 作用:
    计算一组时间序列的数量。
  • 示例:
count(up) 

计算当前处于 “up” 状态的实例数量。

数学运算

  1. rate()
  • 作用:
    计算 Counter 类型指标在指定时间范围内的增长率。
  • 示例:
rate(http_requests_total[5m]) 

计算过去5分钟内 HTTP 请求的增长率。

  1. increase()
  • 作用:
    计算 Counter 类型指标在指定时间范围内的增加量。
  • 示例:
increase(http_requests_total[5m])

计算过去5分钟内 HTTP 请求的增加量。

  1. irate()
  • 作用:
    计算 Counter 类型指标在指定时间范围内的瞬时增长率。
  • 示例:
irate(http_requests_total[5m]) 

计算过去5分钟内 HTTP 请求的瞬时增长率。

时间序列操作

  1. delta()
  • 作用:
    计算时间序列在指定时间范围内的变化量。
  • 示例:
delta(cpu_usage[1h]) 

计算过去1小时内 CPU 使用率的变化量。

  1. deriv()
  • 作用:
    计算时间序列的导数。
  • 示例:
deriv(memory_usage[1h]) 

计算过去1小时内内存使用率的导数。

  1. reset()
  • 作用:
    将 Counter 类型的时间序列重置为 0。
  • 示例:
reset(http_requests_total)

将 HTTP 请求计数器重置为 0。

时间相关函数

  1. time()
  • 作用:
    返回当前 UNIX 时间。
  • 示例:
time() 

获取当前 UNIX 时间。

  1. day_of_week()
  • 作用:
    返回特定时间点的星期几。
  • 示例:
day_of_week(time()) 

获取当前时间的星期几。

  1. days_in_month()
  • 作用:
    返回特定时间点所在月份的天数。
  • 示例:
days_in_month(time())

获取当前月份的天数。

预测和回归

  1. holt_winters()
  • 作用:
    使用 Holt-Winters 方法进行时间序列预测。
  • 示例:
holt_winters(cpu_usage[1h], 0.3, 0.3) 

对过去1小时的 CPU 使用率进行预测。

  1. predict_linear()
  • 作用:
    使用线性回归进行时间序列预测。
  • 示例:
predict_linear(memory_usage[1h], 3600) 

预测未来1小时的内存使用率。

实用函数

  1. label_replace()
  • 作用:
    替换或添加标签。
  • 示例:
label_replace(up, "new_label", "\$1", "instance", "(.*)") 

为 up 指标添加或替换 new_label 标签。

  1. vector()
  • 作用:
    将标量转换为向量。
  • 示例:
vector(1) 

创建一个值为1的向量。

  1. scalar()
  • 作用:
    将向量转换为标量。
  • 示例:
scalar(sum(cpu_usage)) 

将 CPU 使用率的总和转换为标量值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1948556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop集群安装配置

文章目录 Hadoop部署配置集群配置历史服务器配置日志的聚集分发Hadoop群起集群Hadoop群起脚本 准备工作:需要3台虚拟机,每台虚拟机搭建好JDK并配置环境变量 Hadoop部署 1)集群部署规划 注意:NameNode和SecondaryNameNode不要安…

Vue中el的两种写法

大家好我是前端寄术区博主PleaSure乐事。今天了解到了Vue当中有关el的两种写法,记录下来与大家分享,希望对大家有所帮助。 方法一 解释 第一种方法我们直接用new创建并初始化一个新的 Vue 实例,并定义了 Vue 实例的数据对象,在给…

数组算法--二分查找

目录 一.前言 二.算法的核心思路 三.算法的核心代码以注释详解 一.前言 二分查找也叫折中查找,为什么会这样叫呢?就是因为我们二分查找的核心逻辑就是每查找完一次,都能将查找的范围给缩小一半,也就是折中。但使用二分查找又有个…

宏VB的1004问题,方法作用于对象错误,如何解决?

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

RV1126 Linux 系统,接外设,时好时坏(二)排查问题的常用命令

在 RV1126 Linux 系统中,排查外设连接问题时,可以使用多种命令来诊断和调试。以下是一些常用的命令和工具: 1. 查看系统日志 dmesg: 显示内核环形缓冲区的消息,通常包含设备初始化、驱动加载和错误等信息。 dmesg | grep <设备名或相关关键字>journalctl: 查看系统…

windows 下删除一个文件夹及其子文件夹下相同后缀名的文件

问题 我有一个工作目录&#xff0c;沉积了四五年的工作 文件。其中有一个相同格式的中间过程文件暂用很大体积&#xff0c;也不需要保留&#xff0c;并且可以通过其他文件生成。因此想一次删除这个工作目录下的所有相同后缀的文件。 解决方法 在工作目录的地址栏输入“cmd”…

leaflet【九】使用天地图改变地图底色

本文将详细探讨如何在Leaflet地图框架中集成天地图&#xff0c;并介绍如何通过调整背景色和滤镜来改变地图的显示效果。首先&#xff0c;我们将解释如何在Leaflet中配置天地图作为底图&#xff0c;包括API密钥的获取与使用。接下来&#xff0c;文章将展示如何通过CSS和JavaScri…

高等数学 第六讲 一元微分学的应用(二)_中值定理,微分等式,微分不等式

高等数学 第6讲 中值定理 微分等式 微分不等式 文章目录 高等数学 第6讲 中值定理 微分等式 微分不等式1.涉及函数的中值定理1.1 有界与最值定理1.2 介值定理1.3 平均值定理1.4 零点定理 2.涉及导数(微分)的中值定理2.1 导数零点定理2.2 罗尔定理2.3 拉格朗日中值定理2.4 柯西中…

如何利用Jenkins自动化管理、部署数百个应用

目录 1. Jenkins 安装与部署步骤 1.1 系统要求 1.2 安装步骤 1.2.1 Windows 系统 1.2.2 CentOS 系统 1.3 初次配置 2. Gradle 详细配置方式 2.1 安装 Gradle 2.1.1 Windows 系统 2.1.2 CentOS 系统 2.2 配置 Jenkins 中的 Gradle 3. JDK 详细配置方式 3.1 安装 JD…

【MSP430】DriverLib库函数,UCS函数分析

MSP430F5xx_6xx_DriverLib_Users_Guide-2_91_13_01(函数库手册).pdf 在MSP430单片机中&#xff0c;UCS&#xff08;User Clock System&#xff09;模块提供了一组函数用于配置和管理时钟源&#xff0c;包括外部和内部振荡器以及时钟信号的路由和控制。这些函数对于确保系统在正…

layui改造优化ITtools技术笔记01—layui.js重要修正

问题现象&#xff1a; ittools教学平台自动生成的单选按钮渲染后无法切换选项。 故障排查&#xff1a; input[name xxx]&#xff0c;其中xxx含有特殊字符&#xff0c;如$等&#xff0c;导致layui渲染时&#xff0c;表达式出错&#xff0c;无法及时渲染。 解决方案&#xff1…

IO流综合练习

IO流综合练习 文章目录 IO流综合练习制造假数据需求利用糊涂包制造假数据&#xff0c;并写入文件中 随机点名器Student标准JavaBean类实现代码names.txt文件中的内容 登录 制造假数据 需求 制造假数据也是开发中的一个能力&#xff0c;在各个网上爬取数据&#xff0c;是其中一…

js动画插件-vue

分享一个动画插件 学习 动画插件 是进入大厂的必备技能 首先我们需要先学会 去使用js 动画 封装好的 GreenSock 动画平台 &#xff08;GSAP&#xff09; greensock.com/gsap/ 就是这个插件 我现在分享一个用例 其实很简单 但是 具体的属性 和很多 内容需要慢慢使用 慢慢看…

java面试题,有synchronized锁,threadlocal、数据可以设置默认值、把redis中的json转为对象

有面试题&#xff0c;有synchronized锁&#xff0c;threadlocal 一、面试题小记二、加锁synchronized1. 先看代码2. synchronized 讲解2.1. 同步代码块2.2. 同步方法2.3. 锁的选择和影响2.4. 注意事项2.5 锁的操作&#xff0c;手动释放锁&#xff0c;显式地获取锁&#xff08;属…

震惊,刷新我的认知,医疗信息数据库sqlserver中计算年龄的sql函数写了200行...

创作不易 只因热爱!! 热衷分享&#xff0c;一起成长! “你的鼓励就是我努力付出的动力” sqlserver中年龄计算,HIS系统中年龄计算函数 呈现的结果要求: 1周岁内显示"几月几天",1周岁以上显示"几岁" CREATE FUNCTION dbo.FUN_GETBRNL( birth varchar(…

汇昌联信拼多多电商有哪些热门话题?

随着互联网技术的飞速发展&#xff0c;电子商务已经成为人们日常生活的一部分。作为中国领先的电商平台之一&#xff0c;拼多多凭借其独特的商业模式和营销策略迅速崛起&#xff0c;吸引了大量消费者的关注。那么&#xff0c;在汇昌联信拼多多电商领域&#xff0c;有哪些热门话…

SpringBoot启动原理详解(二)

透彻理解SpringBoot启动原理&#xff08;二&#xff09; 照旧一张Spring启动顺序图我们对Spring启动原理有多少理解呢&#xff08;问题回顾&#xff09;关于Spring启动原理的若干问题1.init-method、PostConstruct、afterPropertiesSet 三个方法的执行顺序。2.Spring 何时装配A…

【C语言】数组栈的实现

栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#…

在图神经网络(GNN)上进行关系推理的新架构

开发能够学习推理的模型是一个众所周知的具有挑战性的问题&#xff0c;在这个领域中&#xff0c;使用图神经网络&#xff08;GNNs&#xff09;似乎是一个自然的选择。然而&#xff0c;以往关于使用GNNs进行推理的工作表明&#xff0c;当这些模型面对需要比训练时更长推理链的测…

听见未来,AI+Audio|2025中国国际音频产业大会(GAS)

随着AI技术的创新与突破&#xff0c; 音频行业正步入前所未有的黄金发展期。 2025中国国际音频产业大会&#xff0c; “AI对行业发展的影响” 将成为讨论的热点之一。 3月26-27日&#xff0c;2025中国国际音频产业大会&#xff08;GAS&#xff09;将在上海 张江科学会堂召…