Prometheus使用总结

news/2024/5/19 0:30:53 标签: prometheus

Prometheus

架构

在这里插入图片描述

概念

  • obs 和 Instances

在Prometheus术语中,您可以scrape的目标称为instance,通常对应于单个进程。具有相同目的的instance集合,例如,为可伸缩性或可靠性而复制的流程称为Job

Metric 类型

Prometheus 中存储的数据为时间序列,是由 metric 的名字 (名字是内置标签)和一系列的标签(键值对)唯一标识的,不同的标签则代表不同的时间序列。给定度量标准名称和一组标签,通常使用此表示法标识时间序列.

(一个序列可以理解为一个map, 有内置lable和自定义的lable)

Gauge

  • 理解

“仪表盘”, 表示当前状态, 如系统使用CPU/内存

“无状态”, 不需要关心历史的值

  • API

只包含一个inc()方法,用于计数器+1

Counter

  • 理解

“计数器”, 表示永远只递增, 如系统服务时间

“有状态”,

  • API

set()/inc()/dec(), 用于设置/添加/减少指标值

Histogram

略.

Summary

略.

PromQL

表达式语言类型

  • 即时向量(Instant vector)

包含每个时间序列单个样品的一组时间序列,共享相同的时间戳

  • 范围向量(Range vector)

包含一个范围内数据点的一组时间序列

  • 标量(Scalar)

一个简单的数字浮点值

  • 字符串(String)

一个简单的字符串值;当前未使用

时间序列选择器

  • 即时向量选择

按lable过滤: 支持正则/反向等, 略.

示例: http_requests_total{environment=~‘staging|testing|development’,method!=‘GET’}

  • 范围向量选择

在一个向量表达式之后添加[]来表示时间范围,持续时间用数字表示

示例: http_requests_total{job=‘prometheus’}[5m]

s:seconds

m:minutes

h:hours

d:days

w:weeks

y:years

  • 偏移量Offset

offset可以改变时间为查询中的个别时刻和范围矢量偏移

例如,以下表达式返回http_requests_total相对于当前查询评估时间的过去5分钟值 :

http_requests_total offset 5m

操作符

参考: https://prometheus.io/docs/prometheus/latest/querying/operators/

内置函数

参考: https://prometheus.io/docs/prometheus/latest/querying/functions/

安装及使用

安装: https://prometheus.io/docs/prometheus/latest/installation/

配置: https://prometheus.io/docs/prometheus/latest/configuration/configuration/

客户端

maven依赖及使用: 待补充

其他客户端: 略

使用总结

  • 监控实时指标值

且数据量很小或数量变化频率很低

如果是counter

可以用rate或irate再乘以一个系数

可以metric - metric offset 5s偏移量(结合pull频率)

如果是gauge

如果用的是inc统计数值, 也可以用rate或offset

如果用的是set统计数值, 则只能用offset

  • 多个instance共用一个指标

用聚合函数sum等, 不聚合每个instance一个指标

  • java客户端

counter类型的metric, 最终名称会添加_total后缀

参考

官方: https://prometheus.io/docs/prometheus/latest/querying/basics/
博客1: https://blog.csdn.net/qq_43340814/article/details/108278014
博客2: https://blog.csdn.net/breavo_raw/article/details/104595506


http://www.niftyadmin.cn/n/876074.html

相关文章

记录一次Broken Pipe断链问题排查

目录1. 背景2. 分析/解决历程3. 复盘1. 背景 线上有个后台应用下载时偶发Broken Pipe异常, 堆栈如下: 2022-03-10 18:04:36,075 WARN [Thread-2754] [c.x.b.p.a.w.c.RedeemController] fail to write excel stream org.apache.catalina.connector.ClientAbortException: java…

logback使用详解

文章目录一. 概览二. 快速入门三. 基础四. logback 配置一. 概览 Logback 主要由三个模块组成: logback-corelogback-classiclogback-access logback-core 是其它模块的基础设施,其它模块基于它构建,显然,logback-core 提供了一…

Optional方法详解

Optional方法详解1. 构建2. 空处理3. 转换4. 获取5. 场景本质: 内部包装了一个引用型对象, 封装了很多对null判断及转化的API 1. 构建 Optional of(T value) #value必须非null Optional ofNullable(T value) #value可以为null 2. 空处理 boolean isPresent() #判断是否为null…

JDK中的Exception

JDK中的Exception1. Throwable2. Exception3. RuntimeException4. 自定义异常1. Throwable 三个重要属性 Throwable cause; //getCause的返回,异常的起因String detailMessage; //getMessage()的返回信息, 初始化值为null, 如果不继承异常体系就是nullStackTraceElement[] st…

堆外缓存OHCache使用总结

一. 为什么用缓存 用户数和访问量越来越大并发量/吞吐量要求越来越高连接数或者文件读写存在瓶颈应用和数据库所做的计算也越来越多 如何能够有效利用有限的资源来提供尽可能大的吞吐量?一个有效的办法就是引入缓存 什么是缓存? 缓存(cache&#xff…

Java8新特性之Lambda表达式、函数式接口、方法引用、Stream API、Optional类等的使用

Lambda表达式、函数式接口、方法引用、Stream API、Optional类等的使用Lambda表达式Lambda的具体使用无参、无返回值有参数、无返回值有参数,有返回值省略数据类型省略参数的小括号省略参数的小括号与Lambda体大括号函数式接口内置4大核心函数式接口其他接口使用Jav…

部署Seata服务环境以及基于Seata实现分布式事务

部署Seata服务环境以及基于Seata实现分布式事务Seata简介实现原理三个角色事务过程(生命周期)事务模式部署Seata服务环境安装Seata服务建库建表配置registry.conf文件配置file.conf文件重启Seata服务Seata的使用引入依赖配置seata创建过滤器创建拦截器取消过滤器注册A服务B服务…

Spring Cloud Stream的基本使用

Spring Cloud Stream的基本使用Spring Cloud Stream概述核心概念常用注解InputOutputStreamListenerSendToInboundChannelAdapterServiceActivatorTransformerSource与Sink内置接口生产者消费者自定义接口生产者消费者消息异常处理全局异常处理局部异常处理重试消费Spring Clou…