惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
雷峰网
雷峰网
The Cloudflare Blog
WordPress大学
WordPress大学
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
IT之家
IT之家
V
V2EX
博客园 - 司徒正美
小众软件
小众软件
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿

Jiajun的技术笔记

你好,2026! TiDB 源码阅读(六):TiDB Coprocessor 源码解析 性能优化的核心思想 TiDB 源码阅读(五):索引 TiDB 源码阅读(四):AST、逻辑计划、物理计划 CockroachDB Serverless Architecture podman 无故退出 Cursor Control-L (CTRL-L) Keyboard Shortcuts in Terminal Replace docker with podman Using xmonad with xfce4 A RC script for freebsd frpc 自己动手写一个k8s controller AI 会取代你的(编程)岗位吗? 自建DERP服务器提升Tailscale连接速度(使用Nginx转发) 自动升级Docker容器 再读《程序员修炼之道-从小工到专家》 让浏览器下载文件 再读《软件随想录》/《黑客与画家》/《软技能》 HTTP 压力测试中的 Coordinated Omission 2的补码 编程语言中的 context 是什么? flutter macOS 构建出错 Flatpak 使用小记 Golang CAS 操作是怎么实现的 PostgreSQL 当MQ来使用 Clash 结合 工作VPN 的网络设计 使用 PostgreSQL 搭建 JuiceFS PostgreSQL 配置优化和日志分析 有GitHub Copilot?那就可以搭建你的ChatGPT4服务 窗口函数的使用(以PG为例)
PromQL 备忘
Jiajun Huang · 2023-10-17 · via Jiajun的技术笔记

偶尔需要写PromQL,但是总是不记得,以下为备忘。

表达式语言数据类型包括以下四种:

  • 瞬时向量 Instant vector:一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中的最新的一个样本值。而相应的这样的表达式称之为瞬时向量表达式。
  • 区间向量 Range vector:- 一组时间序列,每个时间序列包含一段时间范围内的样本数据。
  • 标量 Scalar:一个浮点型的数据值。
  • 字符串 String: - 一个简单的字符串值。

下面来看看查询语句:

  • http_requests_total 查询所有值
  • http_requests_total{job=“xxx”} 用大括号增加过滤条件,逗号 , 分割多个条件
    • = : 选择与提供的字符串完全相同的标签。
    • != : 选择与提供的字符串不相同的标签。
    • =~ : 选择正则表达式与提供的字符串(或子字符串)相匹配的标签。
    • !~ : 选择正则表达式与提供的字符串(或子字符串)不匹配的标签。

例如 http_requests_total{environment=~"staging|testing|development",method!="GET"}

  • 用中括号选择时间,例如 http_requests_total{job="prometheus"}[5m],单位有:

    • ms - milliseconds
    • s - seconds
    • m - minutes
    • h - hours
    • d - days - assuming a day has always 24h
    • w - weeks - assuming a week has always 7d
    • y - years - assuming a year has always 365d
  • rate() 函数用来计算变化率

  • increase() 用来计算增长量

  • sum() 用来聚合

sum(rate(xxx)) / sum(rate(xxx)) = sum(increase()) / sum(increase)

  • histogram_quantile() 用来计算直方图里,百分位中的最大值

例如 histogram_quantile(0.9, rate(http_requests_total[10m])) 计算 过去10分钟内,http_requests_total 90% 分位的最大值。

  • $__interval 是Grafana中选中的时间范围
  • $__rate_interval 是选中时间范围,但是解决了 $__interval 的一些小问题,比如 $__interval 选择了15s,刚好Prometheus抓取间隔是15s,那么就会显示不出数据,而 $__rate_interval 保证至少会选择4个数据展示出来。

ref:


相关文章