(四)Prometheus的语句

news2024/12/25 23:36:58

1、node_cpu_seconds_total:监控项数据、指标项

2、node_cpu_seconds_total{cpu="0"}:时间序列

node_cpu_seconds_total

监控项数据(指标项)

{cpu="0"}

标签

node_cpu_seconds_total{cpu="0"}:

node使用CPU的描述的统计,符合标签CPU=0的时间序列的查询结果

3、标签

1__address__:双下划线标签,是Prometheus系统的默认标签,不显示在target页面当中,只有把光标移动到label的字段上,才能显示默认标签

4、过滤

(1)node_cpu_seconds_total{mode="iowait"}

(2)node_cpu_seconds_total{cpu="1",mode="iowait"}

5、匹配标签值(操作符)

=

完全相等

!=

不等于,相当于取反

=~

正则表达式匹配

!~

正则表达式取反

数学运算符

+

加法

-

减法

*

乘法

/

除法

%

取余

^

幂运算

通配符

.

任意单个字符

.*

多个任意字符

.+

一个或者多个任意字符

1)node_cpu_seconds_total{cpu!="1",mode=~"iowait"}

6、数据类型

瞬时向量

一组时序,每个时序只有一个采样值

区间向量

一组时序,每个时序包含一段时间内的多个采样值

rate(container_cpu_load_average_10s{instance="node1"}[5m]):

展示container_cpu_load_average_10s指标的过去每5分钟的采样值,对应的标签是node1

时长的单位类型

s

seconds秒

m

minutes分

h

hour时

d

day日

w

weeks周

y

years年

标量数据

浮点数

字符串

一个字符串

counter

总数,在promQL语句中没有直接作用,由rate、topk、increase、irate函数生成样本数据的变化情况

topk(3,node_cpu_seconds_total):展示前三位数据

increase:结合区间向量一起使用,表示时间序列在一定范围内的增量

increase(node_cpu_seconds_total[5m]):展示数据在5分钟内的增量

irate:高灵敏度的函数,计算指标的瞬时速率,基于样本范围内的最后两个样本数据进行计算(相比),更适用于短时间内的变化速率分析,结合区间向量一起使用

irate(node_cpu_seconds_total[5m]):5分钟内的瞬时变化速率

大部分以total结尾的都是counter类型

gauge

用于存储值、可增可减的指标样本数据,求和、求平均数、取最小值和最大值,也会结合函数delta和predict_linear一起使用

delta:用于计算范围向量中的每个时间序列元素的第一个值和最后一个值之间的差,展示不同时间上样本值的差值

delta(container_memory_cache{instance="node1"}[5m])

predict_linear:可以预测时间序列在V点、在T秒之后的变化趋势,是对样本数据的变化数据做出预测

predict_linear(node_filesystem_files{instance="master"}[2h],4*3600):

node_filesystem_files:计算node节点上的文件数,选择的标签是master,过去两小时,4*3600未来4个小时。统计过去两个小时样本数据的变化,根据过去两个小时的数据变化预测未来4个小时的数据变化

histogram

对一定时间范围内的数据进行采样,通常是请求持续的时长和响应大小的类型这一类,计入一个可配的桶(bucket),通过区间对样本进行筛选,也可以统计求和

node_authorizer_graph_actions_duration_seconds_bucket{instance="20.0.0.71:6443",le="0.0002"}:观测桶的上边界,样本的统计区间,表示所有的样本值小于等于上边界值的所有样本数量

node_authorizer_graph_actions_duration_seconds_bucket{instance="20.0.0.71:6443",le="+Inf"}最大区间,包含的所有样本数量

apiserver_current_inflight_requests{instance="20.0.0.71:6443"} >=1快速的了解监控样本的分布情况

summary

分位数计算、类似于histogram,在客户端于一段时间内(默认是10分钟)的每个采样点进行统计,计算并且存储了分位数的值,服务端可以直接抓取响应的值

quantile="0.5",0——1的范围内,围绕中位数0.5进行比较

7、聚合操作符

sum

求和

sum(container_cpu_usage_seconds_total)

min

最小值

min(container_cpu_usage_seconds_total)

max

最大值

max(container_cpu_usage_seconds_total)

avg

平均值

avg(container_cpu_usage_seconds_total)

stddev

标准差

stdvar

方差

count

元素个数

count(container_cpu_usage_seconds_total)

count_values

等于某个值的元素个数

topk

最大的元素的个数

topk(3,container_cpu_usage_seconds_total)

bottomk

最小的元素的个数

bottomk(3,container_cpu_usage_seconds_total):取前三个最小的元素个数

topk和bottomk,需要带入数值,数值表示的是取前几位还是后几位

quantile

分位数

quantile(0.65,container_cpu_usage_seconds_total)

8、promQL语句的业务中使用

1计算某个节点的所有容器的使用内存的时间序列:单位GB
sum(container_memory_usage_bytes{instance="node1"})/1024/1024/1024

2某个节点最近1分钟内所有容器使用CPU的情况
sum(rate(container_cpu_usage_seconds_total{instance="node1"}[1m]))

(3)最近一分钟所有容器的使用率:

sum by (id )(rate(container_cpu_usage_seconds_total{id!="/"}[1m]))

4查询k8s集群中最近1分钟每个pod的CPU使用率:
sum by (name)(rate(container_cpu_usage_seconds_total{image!="",name!=""}[1m]))

计算 master01 节点所有容器总计内存:

sum(container_memory_usage_bytes{instance=~"master01"})/1024/1024/1024

计算 master01 节点最近 1m 所有容器 cpu 使用率:

sum (rate (container_cpu_usage_seconds_total{instance=~"master01"}[1m])) / sum (machine_cpu_cores{ instance =~"master01"}) * 100

计算最近 1m 所有容器 cpu 使用率

sum by (id)(rate (container_cpu_usage_seconds_total{id!="/"}[1m]))

查询 K8S 集群中最近 1m 每个 Pod 的 CPU 使用率

sum by (name)(rate (container_cpu_usage_seconds_total{image!="", name!=""}[1m]))

每台主机 CPU 在最近 5 分钟内的平均使用率

(1 - avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance)) * 100

查询 1 分钟的 load average 的时间序列是否超过主机 CPU 数量 2 倍

node_load1 > on (instance) 2 * count (node_cpu_seconds_total{mode="idle"}) by (instance)

计算主机内存使用率可用内存空间:空闲内存、buffer、cache 指标之和

node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes

已用内存空间:总内存空间减去可用空间

node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes)

使用率:已用空间除以总空间

(node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes)) / node_memory_MemTotal_bytes * 100

计算所有 node 节点所有容器总计内存:

sum  by (instance) (container_memory_usage_bytes{instance=~"node*"})/1024/1024/1024

计算 node01 节点最近 1m 所有容器 cpu 使用率:

sum (rate(container_cpu_usage_seconds_total{instance="node01"}[1m])) / sum (machine_cpu_cores{instance="node01"}) * 100

#container_cpu_usage_seconds_total 代表容器占用CPU的时间总和

计算最近 5m 每个容器 cpu 使用情况变化率

sum (rate(container_cpu_usage_seconds_total[5m])) by (container_name)

查询 K8S 集群中最近 1m 每个 Pod 的 CPU 使用情况变化率

sum (rate(container_cpu_usage_seconds_total{image!="", pod_name!=""}[1m])) by (pod_name)

#由于查询到的数据都是容器相关的,所以最好按照 Pod 分组聚

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

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

相关文章

【排序算法】归并排序

文章目录 一:基本概念1.1 定义1.2 算法思路1.3 图解算法1.4 合并两个有序数组流程1.5 动画展示 二:性能2.1 算法性能2.2 时间复杂度2.3 空间复杂度2.4 稳定性 三:代码实现 一:基本概念 1.1 定义 归并排序(Merge sort…

EasyExcel实现Excel文件导入导出

1 EasyExcel简介 EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 github地址: https://github.com/alibaba/easyexcel 官方文档: https://www.yuque.com/easyexcel/doc/easyexcel Excel解析流程图: EasyExcel读取…

ip地址冲突上不了网怎么解决

在当今数字化的世界里,互联网已经成为了我们生活和工作中不可或缺的一部分。然而,有时候我们会遇到一些网络问题,其中最常见的就是IP地址冲突。当您的计算机无法连接到网络,或者网络连接不稳定时,这可能是IP地址冲突的…

华为---STP(二)---STP报文和STP端口状态

目录 1. STP报文简介 1.1 Configuration BPDU 1.2 TCN BPDU 2. STP交换机端口状态 2.1 STP交换机端口状态表 2.2 STP交换机端口状态迁移过程图 2.3 STP交换机端口状态变化举例说明 3 引起的STP网络拓扑改变的示例 3.1 根桥出现故障 3.2 有阻塞端口的交换机根端口所在…

编译opencv4.6问题汇总,第三方软件包见我发的资源

win10系统 python3.8.2,cmake-3.15.5-win64-x64,opencv4.6 编译方式见:OpenCV的编译 - 知乎 本文主要总结问题。赠人玫瑰手留余香。 问题1 Problem with installing OpenCV using Visual Studio and CMake (error code: MSB3073) 解决方法…

实验3:利用Linux的消息队列通信机制实现三个线程间的通信

调用原型 POSIX信号量–无名信号量 POSIX信号量是Pthread线程库提供的一种同步机制,包括无名信号量和有名信号量两种机制。无名信号量,常用于多线程间的同步,也可用于相关进程间的同步(需置于相关进程间的共享内存区中&#xff…

React、React Router、JSX 简单入门快速上手

React、React Router、JSX 简单入门快速上手 介绍特点 JSX使用js表达式渲染列表样式控制注意事项 入门脚手架创建react项目安装目录介绍入口文件解析 组件解析介绍函数式组件类组件 事件绑定注意点定义使用事件对象事件处理函数接收额外参数 组件状态状态的定义使用 组件通信父…

金蝶云星空RCE漏洞合集(多接口批量检测)

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

IntelliJ Idea实用插件推荐

目录 一、插件安装 二、常用插件 A、代码规范 Alibaba Java Coding Guidelines SonarLint B、快捷开发 aiXcoder-AI代码生成 AWS Toolkit-AI代码生成 CodeGeeX-AI代码生成 CodeGlance-代码缩略图 camelCase-格式转换 GsonFormatPlus-json代码生成 Sequence Giagram…

从搜索引擎到答案引擎:LLM驱动的变革

在过去的几周里,我一直在思考和起草这篇文章,认为谷歌搜索正处于被颠覆的边缘,它实际上可能会影响 SEO 作为业务牵引渠道的可行性。 考虑到谷歌二十多年来的完全统治地位,以及任何竞争对手都完全无力削弱它,坦率地说&…

微信活动投票小程序源码系统:自主创建活动小程序带完整的安装代码包以及搭建教程

微信小程序的日益普及,越来越多的企业和个人开始关注如何利用小程序进行活动推广和用户互动。在这个背景下,微信活动投票小程序源码系统应运而生。这款源码系统旨在帮助用户快速创建自己的活动投票小程序,降低技术门槛,提高开发效…

代理模式(静态代理、JDK 动态代理、CGLIB 动态代理)

代理模式(静态代理、JDK 动态代理、CGLIB 动态代理) 一、代理模式概述1. 生活中的代理案例2. 为什么要使用代理3. 代理模式在 Java 中的应用4. 概述5. 生活中代理图示二、代理的实现方式1. Java 中代理图示2. 静态代理2.1 案例2.2 实现案例2.3 静态代理存在的问题三、动态代理…

centOS+nodejs+mysql阿里云部署前后端个人网站

centOSnodejsmysql阿里云部署前后端个人网站 参考: 部署NodeExpressMySQL项目到阿里云轻量应用服务器 阿里云轻量应用服务器部署Node.jsReactMongoDB前后端分离项目 参考:在阿里云上部署nodejs服务 https 部署的原理就是你在本地测试的时候在地址栏&am…

FileViewer纯前端预览项目Vue2 demo

FileViewer 项目Vue2 demo 本demo基于vue-clijsvue2.x构建,如果您需要vue3版本的demo,请前往main分支。 适用于Vue2 Webpack,本集成方法要求最低Webpack版本为5,也就是Vue Cli Service 5.0.0以上,当然,if…

万户 ezOFFICE wpsservlet SQL注入漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息维护、客户服务、互动交流和日…

Word莫名其妙开启兼容模式将其永久取消的方法

这是因为Word模板文件被意外更改了 找到Word模板文件,目录在C:\Users\15976\AppData\Roaming\Microsoft\Templates 15976替换成你自己的用户名,不确定的就先点进C/Users看一看, AppData是隐藏文件夹,显示隐藏文件夹才能看见&am…

腾讯云SSL证书在阿里云添加域名DNS解析

场景说明 在阿里云申请并备案了域名,这个域名理论上可以在任何服务器上进行绑定。应用服务器部署到腾讯云,并在腾讯云申请了SSL证书,从而完成HTTPS转化。那么问题来了,腾讯提供的免费版SSL证书是一年有效期,到期后就需…

EVAP-COND蒸发器和冷凝器设计软件

EVAP-COND蒸发器和冷凝器设计软件 是一个软件包,其中包含NIST的翅片管蒸发器和冷凝器仿真模型。“逐管”建模方案允许指定复杂的制冷剂回路,对这些回路之间的制冷剂分配进行建模,并考虑到不均匀的空气分配。模拟结果包括每个管的局部参数&…

MyBatis常见面试题汇总

说一下MyBatis执行流程? MyBatis是一款优秀的基于Java的持久层框架,它内部封装了JDBC,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接等的过程,MyBatis的执行流程如下: 加载配…

单片机开发通用功能组件

mcu_reuse_development_module 单片机可复用、可通用开发组件,是以中间件思想开发的一套功能模块,将具有代表性或使用次数较多的功能和协议栈封装为独立的组件供开发者使用,开发者仅需通过组件提供的接口对接驱动层和应用层即可使用组件功能…