首页 > 其他分享 >Prometheus--学习笔记

Prometheus--学习笔记

时间:2023-08-23 11:13:12浏览次数:42  
标签:-- quantile json 笔记 histogram Prometheus meta summary

Prometheus  https://prometheus.fuckcloudnative.io/

1. 指标类型:四种核心指标类型

  • Counter计数器 Inc,Add,rate,topk
  • Gauge 仪表盘 dalta predict_liner
  • Histogram 直方图 histogram_quantile
  • summary 摘要,与histogram类似,不同点在于:关于分位数
  原文链接:https://blog.csdn.net/wtan825/article/details/94616813 查看分位数时summary和histogram的选择 清楚几点限制: Summary 结构有频繁的全局锁操作,对高并发程序性能存在一定影响。histogram仅仅是给每个桶做一个原子变量的计数就可以了,而summary要每次执行算法计算出最新的X分位value是多少,算法需要并发保护。会占用客户端的cpu和内存。 不能对Summary产生的quantile值进行aggregation运算(例如sum, avg等)。例如有两个实例同时运行,都对外提供服务,分别统计各自的响应时间。最后分别计算出的0.5-quantile的值为60和80,这时如果简单的求平均(60+80)/2,认为是总体的0.5-quantile值,那么就错了。 summary的百分位是提前在客户端里指定的,在服务端观测指标数据时不能获取未指定的分为数。而histogram则可以通过promql随便指定,虽然计算的不如summary准确,但带来了灵活性。 histogram不能得到精确的分为数,设置的bucket不合理的话,误差会非常大。会消耗服务端的计算资源。 两条经验 如果需要聚合(aggregate),选择histograms。 如果比较清楚要观测的指标的范围和分布情况,选择histograms。如果需要精确的分为数选择summary。  

2. PromQL 操作符,内置函数

自查 https://prometheus.fuckcloudnative.io/di-san-zhang-prometheus/di-4-jie-cha-xun/operators  

3. 存储

Prometheus 按照两个小时为一个时间窗口,将两小时内产生的数据存储在一个块(Block)中。 每个块都是一个单独的目录,
  • 里面含该时间窗口内的所有样本数据(chunks),
  • 元数据文件(meta.json)以及
  • 索引文件(index)。其中索引文件会将指标名称和标签索引到样板数据的时间序列中。
  • 此期间如果通过 API 删除时间序列,删除记录会保存在单独的逻辑文件 tombstone 当中。
 

示例 保存数据块的目录结构

./data |- 01BKGV7JBM69T2G1BGBGM6KB12 # 块 |- meta.json # 元数据 |- wal # 写入日志 |- 000002 |- 000001 |- 01BKGTZQ1SYQJTR4PB43C8PD98 # 块 |- meta.json #元数据 |- index # 索引文件 |- chunks # 样本数据 |- 000001 |- tombstones # 逻辑数据 |- 01BKGTZQ1HHWHV8FBJXW1Y3W0K |- meta.json |- wal |-000001  

标签:--,quantile,json,笔记,histogram,Prometheus,meta,summary
From: https://www.cnblogs.com/shoshana-kong/p/17650665.html

相关文章

  • 如何与 UNI-SELECT 建立 EDI 连接?
    UNI-SELECT是一家专注于汽车零部件分销的领先企业,致力于为全球客户提供优质的汽车维修、保养和美容产品,以满足不断变化的市场需求。多年来,UNI-SELECT凭借卓越的服务和高品质的产品赢得了众多荣誉和认可,不断推动着整个汽车零部件供应链的发展。项目挑战实施EDI项目需要注意:......
  • Python基础入门学习笔记 048 魔法方法:迭代器
    迭代的意思类似于循环,每一次重复的过程被称为一次迭代的过程,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。提供迭代方法的容器称为迭代器(如序列(列表、元组、字符串)、字典等)。对一个容器对象调用iter()就得到它的迭代器,调用next()迭代器就会返回下一个值。入托迭代器没......
  • Centos8更换yum源
    具体参考阿里云官方文档:https://help.aliyun.com/zh/ecs/user-guide/change-centos-8-repository-addresses?spm=a2c4g.11186623.0.0.a65cad75ZzQ9Zw操作步骤登录CentOS8系统的ECS实例。具体操作,请参见连接方式概述。运行以下命令备份之前的repo文件。 rename'.rep......
  • Python基础入门学习笔记 049 乱入:生成器
    所谓协同程序,就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后在再次调用它的时候,从上次暂停的位置继续执行下去。一个函数中如果有yield语句,则被定义为生成器。实例1:......
  • Python基础入门学习笔记 050 模块:模块就是程序
    什么是模块•容器->数据的封装•函数->语句的封装•类->方法和属性的封装•模块->模块就是程序命名空间爱的宣言:世界上只有一个名字,使我这样牵肠挂肚,像有一根看不见的线,一头牢牢系在我心尖上,一头攥在你手中,这个名字就叫做鱼C工作室计算机一班的小花……导入模块•......
  • 斜率优化学记笔记
    [例题](https://www.luogu.com.cn/problem/P3195)考虑朴素做法:$f_i$表示把前$i$个玩具装箱所需的最小费用,$s_i$为$c_i$的前缀和,则有:$$f_i=\min\limits_{j=1}^i(f_{j-1}+(i-j+s_i-s_{j-1}-L)^2)$$令$g_i=i+s_i-L,x_i=j+s_{j-1}$,则有:$$f_i=\min\limits_{j=1}^i(f_{j-1}+(g_i-......
  • Oracle触发器
    --手办表DROPTABLET_GIRL;CREATETABLET_GIRL(IDNUMBER,NAMEVARCHAR2(30),PRIMARYKEY(ID),AGENUMBER,TCODENUMBER);--数量表DROPTABLET_SQL_LOG;CREATETABLET_SQL_LOG(TIDNUMBER,TNAMEVARCHAR2(30),TCODEVARCHAR(20),TCOUNTNUM......
  • SELECT a.c_port_code, a.d_aststat, a.C_KM_NAME DWJZ
    SELECTa.c_port_code,a.d_aststat,a.C_KM_NAMEDWJZFROMt_r_fr_aststatawhere(A.C_PORT_CODE='SGU520')anda.d_aststat=GETDAY_HDAY('CN',LAST_DAY(date'2023-07-01')+1,-1,'W&#......
  • docker 开机自启
    1、使用dockerrun命令运行时增加--restart=always参数即可2、使用docker-compose命令运行时在yml文件中,需要自启动的service下增加restart:always项目即可3、已运行的容器修改其自启动策略执行命令:dockerupdate--restart=always容器名或容器ID—————......
  • DPDK-22.11.2 [四] 官方basicfwd编译运行讲解
    编译安装dpdk绑定网卡驱动vfio必须有两个网口配置LD_LIBRARY_PATH和PKG_CONFIG_PATH编译运行basicfwd.c/*SPDX-License-Identifier:BSD-3-Clause*Copyright(c)2010-2015IntelCorporation*/#include<stdint.h>#include<stdlib.h>#include<inttypes.h>#incl......