【Prometheus】Prometheus的样本

人不走空

                                                                      

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

目录

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

1. 时间戳(Timestamp)

2. 度量名称(Metric Name)

3. 标签(Labels)

4. 度量值(Value)

示例:Prometheus 样本的结构

5. Prometheus 中的时间序列

6. Prometheus 查询语言(PromQL)

7. Prometheus 样本的类型

示例:不同类型的样本

1. Counter 样本

2. Gauge 样本

3. Histogram 样本

4. Summary 样本

总结:

作者其他作品:


Prometheus 中,"样本"(Sample)是指时间序列数据的一个基本单位,包含了某个特定时刻的一个度量值。一个样本由以下几部分组成:

1. 时间戳(Timestamp)

  • 样本会记录数据的时间戳,表示这个数据值是在什么时候被采集的。
  • Prometheus 会根据配置的抓取间隔定期拉取目标的度量数据。每次采集的数据都会附带一个时间戳,表示数据的时间点。

2. 度量名称(Metric Name)

  • 每个样本都关联着一个度量(或指标)名称,这个名称用于描述被监控的事物。例如,http_requests_total(HTTP请求总数)或 cpu_usage(CPU使用率)。

3. 标签(Labels)

  • Prometheus 允许你为每个样本添加一组键值对标签,用于进一步细分和过滤数据。标签可以帮助你区分相同名称的不同度量,通常用于区分不同的实例、应用程序、环境、区域等。
  • 例如,你可以使用 job="api-server"instance="server1" 等标签来区分同一度量的不同来源。

4. 度量值(Value)

  • 每个样本包含一个度量值,即采集到的数值。例如,一个计数器可能表示某个事件发生的次数,或者一个 gauge(仪表)指标可能表示某个资源的当前使用量。

示例:Prometheus 样本的结构

假设我们有一个 HTTP 请求的计数器指标 http_requests_total,用于表示服务接收到的 HTTP 请求总数。这个度量可能会有以下样本数据:

 

plaintext

复制代码

http_requests_total{method="GET", status="200", job="api-server", instance="server1"} 10234 1617902462000

上面的样本表示:

  • 度量名称http_requests_total(HTTP请求总数)
  • 标签method="GET", status="200", job="api-server", instance="server1"
  • 10234(表示接收到的 HTTP GET 请求的数量)
  • 时间戳1617902462000(这个样本的时间戳,单位为毫秒)

5. Prometheus 中的时间序列

Prometheus 中的时间序列是由一系列带有时间戳的样本组成的。每个时间序列都有一个度量名称和一组标签,而这些标签帮助 Prometheus 区分不同的时间序列。例如,假设有两个不同的 job(如 api-serverdb-server),它们会有不同的时间序列,尽管它们可能使用相同的指标名称(例如 http_requests_total)。

6. Prometheus 查询语言(PromQL)

Prometheus 查询语言(PromQL)可以用来查询时间序列数据,并操作这些样本。例如,可以查询过去某个时间段内的最大值、平均值、总和等:

  • 查询一个时间序列的最新值

     

    prometheus

    复制代码

    http_requests_total{job="api-server", instance="server1"}

    这个查询会返回 job="api-server"instance="server1" 下所有 HTTP 请求的最新计数值。

  • 查询某个时间段内的总和

     

    prometheus

    复制代码

    sum(http_requests_total{job="api-server"}) by (status)

    这条查询会返回 job="api-server" 下按 status 标签汇总的 HTTP 请求总数。

  • 查询某个时间段内的最大值

     

    prometheus

    复制代码

    max_over_time(http_requests_total[1h])

    这个查询会返回过去 1 小时内 http_requests_total 指标的最大值。

7. Prometheus 样本的类型

Prometheus 支持多种度量类型,它们定义了样本值的含义和如何增长:

  • Counter(计数器):计数器值只能增加,表示某个事件的累计发生次数(例如 HTTP 请求总数)。
  • Gauge(仪表):仪表可以增加也可以减少,表示一个瞬时的测量值(例如当前 CPU 使用率、内存使用量等)。
  • Histogram(分布):直方图用于表示数据分布,记录某个度量的不同范围值的数量。例如,HTTP 响应时间的分布。
  • Summary(概述):概述也用于表示分布,但它不仅记录范围分布,还提供如百分位数(例如 95% 响应时间)的信息。

示例:不同类型的样本

1. Counter 样本
 

plaintext

复制代码

http_requests_total{method="GET", status="200", job="api-server", instance="server1"} 10234

这个样本表示 http_requests_total 的计数器,当前值为 10234

2. Gauge 样本
 

plaintext

复制代码

cpu_usage{job="api-server", instance="server1"} 0.75

这个样本表示 cpu_usage(CPU 使用率)为 0.75,即 75%。

3. Histogram 样本
 

plaintext

复制代码

http_request_duration_seconds_bucket{le="0.1", job="api-server", instance="server1"} 300 http_request_duration_seconds_bucket{le="0.2", job="api-server", instance="server1"} 500

这表示 http_request_duration_seconds(HTTP 请求时长)的直方图数据:在 0.1 秒内完成的请求有 300 个,在 0.2 秒内完成的请求有 500 个。

4. Summary 样本
 

plaintext

复制代码

http_request_duration_seconds_sum{job="api-server", instance="server1"} 350 http_request_duration_seconds_count{job="api-server", instance="server1"} 500

这个样本表示 http_request_duration_seconds 的总结:所有请求的总时长为 350 秒,总请求数为 500。

总结:

在 Prometheus 中,样本 是一个时间序列的基本单位,由度量名称、标签、数值和时间戳组成。Prometheus 通过这种方式存储和管理大量的度量数据,从而使得我们能够对系统进行详细的监控和查询。通过 PromQL 查询语言,我们可以灵活地提取和分析这些样本数据,帮助我们更好地理解系统的健康状况和性能瓶颈。


作者其他作品:

【Java】Spring循环依赖:原因与解决方法

OpenAI Sora来了,视频生成领域的GPT-4时代来了

[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读

【Java】深入理解Java中的static关键字

[Java·算法·简单] LeetCode 28. 找出字a符串中第一个匹配项的下标 详细解读

了解 Java 中的 AtomicInteger 类

算法题 — 整数转二进制,查找其中1的数量

深入理解MySQL事务特性:保证数据完整性与一致性

Java企业应用软件系统架构演变史 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端学习一

一 进程与线程 线程是进程执行的最小单位,进程是系统分配任务的最小单位。 一个进程可执行最少一个线程。线程分为子线程和主线程。 主线程关闭则子线程关闭。 二 浏览器进程 浏览器是多进程多线程应用。 进程包括: 浏览器进程 负责程序交互渲染…

鸿蒙开发-ArkTS 创建自定义组件

在 ArkTS 中创建自定义组件是一个相对简单但功能强大的过程。以下是如何在 ArkTS 中创建和使用自定义组件的详细步骤: 一、定义自定义组件 使用Component注解:为了注册一个组件,使其能够在其他文件中被引用,你需要使用Component…

探索Starship:一款用Rust打造的高性能终端

在终端的世界里,效率和美观往往并行不悖。今天,我们要介绍的是一款名为Starship的终端工具,它以其轻量级、高颜值和强大的自定义功能,赢得了众多开发者的青睐。 安装 任选一种方式进行安装 Windows 🪟 # scoop scoo…

[Unity] Text文本首行缩进两个字符

Text文本首行缩进两个字符的方法比较简单。通过代码把"\u3000\u3000"加到文本字符串前面即可。 比如: 效果: 代码: TMPtext1.text "\u3000\u3000" "选择动作类型:";

基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)

由于一直在调试本项目,好久没有发文章,最近本项目的PID调试初见成效!开始正文前首先感谢各位粉丝的支持,以及对本项目技术上支持的老师以及师兄,谢谢你们! 对应源码及文件:源码及文件下载 基于…

海量数据-Vastbase G100数据库安装

海量数据-Vastbase G100数据库安装 文章目录 海量数据-Vastbase G100数据库安装前期准备防火墙配置方案一:关闭防火墙方案二:开放数据库端口 SELINUX配置时间同步IPC参数配置 单机安装设置主机名创建数据库安装用户和目录(可选)修改资源限制 字符安装&am…

故障013:易忘的NULL表达式

故障013:易忘的NULL表达式 一、问题引入二、探索之路2.1 数据准备2.2 回顾NULL表达式2.3 重现问题2.3.1 分析原因2.3.2 如何化解预期? 三、知识总结 一、问题引入 某单位开发人员理直气壮抛出一张截图,以红色醒目地标记问题,好似…

Ubuntu22.04安装docker desktop遇到的bug

1. 确认已启用 KVM 虚拟化 如果加载了模块,输出应该如下图。说明 Intel CPU 的 KVM 模块已开启。 否则在VMware开启宿主机虚拟化功能: 2. 下一步操作: Ubuntu | Docker Docs 3. 启动Docker桌面后发现账户登陆不上去: Sign in | …

JVM(Java虚拟机)的虚拟机栈

JVM(Java虚拟机)的虚拟机栈是Java程序运行时的重要组件,以下是对其的详细解析: 一、概念与功能 概念:虚拟机栈也称为Java栈,是JVM为每个线程分配的一个私有的内存区域。每个线程在创建时都会创建一个虚拟…

集成自然语言理解服务,让应用 “听得懂人话”

如今,应用程序智能化已成趋势,开发者想要实现智能化,那么首先需要赋予应用理解自然语言的能力,使其能够准确地听懂人话,进而响应用户需求,并提供一系列智能化服务。比如用户语音控制应用程序帮忙订票&#…

Springboot3.x配置类(Configuration)和单元测试

配置类在Spring Boot框架中扮演着关键角色,它使开发者能够利用Java代码定义Bean、设定属性及调整其他Spring相关设置,取代了早期版本中依赖的XML配置文件。 集中化管理:借助Configuration注解,Spring Boot让用户能在一个或几个配…

fabric.js

目录 一、在canvas上画简单的图形 二、在canvas上用路径(Path)画不规则图形 三、在canvas上插入图片并设置旋转属性(angle) 四、让元素动起来(animate) 五、图像过滤器(filters)让图片多姿多彩 六、颜色模式(Color)和相互转换(toRgb、toHex) 七、对图形的渐变填充(Gradi…

ActiveMQ 反序列化漏洞CVE-2015-5254复现

文章目录 一、产生原因二、利用条件三、利用过程四、PoC(概念验证)五、poc环境验证使用find搜索vulhub已安装目录打开activeMQ组件查看配置文件端口启动镜像-文件配置好后对于Docker 镜像下载问题及解决办法设置好镜像源地址,进行重启docker查…

给新ubuntu电脑配置远程控制环境和c++版本的opencv环境

目录 改用户密码安装ssh sever安装net-tools配置vscode安装vim配置C opencv1. 安装g, cmake, make2.安装opencv依赖库3.下载opencv源文件(1)方法一:官网下载(2)方法二:GitHub下载方式: 4. Cmake…

如何在 Debian 12 上安装和使用 Vuls 漏洞扫描器

简介 Vuls 是一款无代理、免费且开源的 Linux 和 FreeBSD 漏洞扫描器。Vuls 主要用 Go 语言编写,可以在任何地方运行。你可以在云端、本地和 Docker 上运行 Vuls,并且它支持主要的发行版。Vuls 提供高质量的扫描,支持多个漏洞数据库&#xf…

Python-装饰器(Decorator)详解

在python中,函数是一等公民,意味着函数可以像其他对象一样被赋值、传递参数、作为返回值等。装饰器的基本语法是使用符号将一个函数作为参数传递给另一个函数(即装饰器)。被装饰的函数在被调用时,实际上会执行装饰器函…

数据结构_拓扑排序

拓扑排序 (所有点按照先后顺序排序) 1.先找到入度为0的点,记录之后,删除这个点和它的出边; 2.若有两个可选,随便选择一个 例 a的入度为0,选a [a] 随便选一个 [a,e] 再找入度为0的点 再选c 最后选d 拓…

MinerU:PDF文档提取工具

目录 docker一键启动本地配置下载模型权重文件demo.py使用命令行启动GPU使用情况 wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile docker build -t mineru:latest .docker一键启动 有点问题,晚点更新 本地配置 就是在Python环境中配置依赖和…

redis集群安装部署 redis三主三从集群

redis集群安装部署 redis三主三从集群 1、下载redis2、安装redis集群 三主三从3、配置redis开机自启动3.1、建立启动脚本3.2、复制多份redis启动脚本给集群使用3.3、添加可执行权限3.4、配置开机自启动 1、下载redis 本次redis安装部署选择当前最新的稳定版本7.4.1 下载链接: …

Fiddler简单使用

Fiddler使用方法 1.作用 接口测试,发送自定义请求,模拟小型的接口测试定位前后端bug,抓取协议包,前后端联调构建模拟测试场景,数据篡改,重定向弱网测试,模拟限速操作,弱网&#xf…