Grafana 系列-统一展示-3-Prometheus 仪表板

news2025/1/18 7:00:55

系列文章

  • Grafana 系列文章

知识储备

Prometheus Template Variables

你可以使用变量来代替硬编码的细节,如 server、app 和 pod_name 在 metric 查询中。Grafana 在仪表盘顶部的下拉选择框中列出这些变量,帮助你改变仪表盘中显示的数据。Grafana 将这类变量称为模板变量。

Query Variables

使用 Query 类型的变量来查询 Prometheus 的指标 (metrics)、标签 (labels) 或标签值 (label values) 的列表。

选择一个 Prometheus 数据源查询类型并输入所需的输入:

Variable Syntax

Prometheus 数据源支持在 Query 字段中使用两种变量语法:

  • $<varname>, 如:rate(http_requests_total{job=~"$job"}[$_rate_interval]), 它更容易读和写,但不允许你在词的中间使用变量。一般使用这种变量就够用了。
  • [[varname]], 如:rate(http_requests_total{job=~"[[job]]"}[$_rate_interval])

如果你启用了 Multi-valueInclude all 选项,Grafana 会将标签从纯文本转换为与 regex 兼容的字符串,这需要你使用=~而不是=。所以推荐在 Grafana 中使用 PromQL 组合 Grafana 变量时,首选 =~.

Annotations

注释 (Annotations) 在图表上面叠加丰富的事件信息。你可以在 Dashboard 菜单的 Annotations 视图中添加注释查询。

Prometheus 支持两种方式来查询注释。

  • 一个常规的 metric 查询
  • 一个 Prometheus 的 pending 和 firing 的告警(详见 在运行期间检查警报), 示例为:ALERTS{alertname="<alert name>", alertstate="<pending or firing>", <additional alert labels>}

Step 选项对于限制从你的查询中返回的事件数量很有用。

Ad Hoc Filters Variable

Prometheus 支持特殊的 ad hoc filters 变量类型,你可以用它来临时指定任何数量的 标签/值 过滤器。这些过滤器会自动应用于你所有的 Prometheus 查询。

实战

我们直接从 Grafana Dashboards 中选择一个 Dashboard - JVM(Micrometer) (ID: 4701) 来进行说明演示。

📝Notes:

这就是选择使用 Grafana 的一个巨大好处,它拥有丰富的生态。 我们一般不需要从零开始构建仪表板,可以站在巨人的肩上,再进行部分调整。

最终效果如下:

JVM(Micrometer) (ID: 4701)

细节优化

这里有一些小的仪表板优化细节和大家分享:

  • 对于变量,谨慎启用:Multi-valueInclude all 选项。避免查询数据量过大。
  • 对于展示 Panel 数量特别多的单一 Dashboard, 可以根据 Panel 的类型添加 Row, 并将部分 Row 收起。实现 Lazy Load, 减少查询数据量,优化用户体验。
  • 对于右上角时间范围,建议在合理范围内尽可能小;同时如果查询数据量特别大,建议禁用 auto refresh

配置 JVM Restart Annotation

在这个 Dashboard 里,可以配置关于 JVM Restart 的 Annotation, 具体配置示例如下:

JVM  Restart Annotation Config

  • Name: Restart Detection
  • Data source: Prometheus
  • Enabled: ✔️
  • Color: Red
  • Query
    • Expr: resets(process_uptime_seconds{app="$app", pod_name="$pod_name"}[1m]) > 0, 这里是基于 process_uptime_seconds 来实现。
    • Step: 1m
  • Field formats, 这里 title 和 text 字段,可以使用变量,如:{{instance}}
    • Title: Restart
    • Tags: restart-tag
    • Text: uptime reset

最终效果如下(这里一直没有复现 JVM Restart), 用 Grafana Play 的 Demo 演示:

Annotation Example

变量

Label Value

具体配置如下,如需要根据 app 的值进行选择,则配置如下:

变量 app

Name: app Type: Query Query: label_values(app)

如果要新增另一个变量 pod_name, 需要基于 app 的结果进行过滤,则配置如下:

Name: pod_name Query: label_values(jvm_memory_used_bytes{app="$app"}, pod_name)

如果需要对变量根据自己的实际情况进行调整,如,需要将 pod_name 变量改为 instance 变量。 Instance 变量如下:

Name: instance Query: label_values(jvm_memory_used_bytes{app="$app"}, instance)

则可以进入该 Dashboard 的 Settings -> JSON Model, 中,对pod_name pod_name=\"$pod_name\" 等批量替换为 instance instance=\"$instance\"

Interval

也可以设置时间间隔 (Interval) 作为变量。具体如下:

  • Name: interval
  • Type: Interval
  • Values: 不同的时间间隔用,, 如:5s,10s,30s,1m,10m,30m,1h,6h,12h,1d,7d,14d,30d

然后 Dashboard 下的 Query 可以通过 $__interval$__interval_ms 来使用。

EOF

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

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

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

相关文章

【Java EE】-Servlet(四) Cookie和Session

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享: 寂寞会发慌&#xff0c;孤独是饱满的。——史铁生《命若琴弦》 主要内容&#xff1a;Cookie的理解&#xff0c;Cookie是什么&#xff1f;Cookie从哪里来&#x…

【消息中间件】kafka高性能设计之内存池

文章目录 前言实现创建内存池分配内存释放内存 总结 前言 Kafka的内存池是一个用于管理内存分配的缓存区域。它通过在内存上保留一块固定大小的内存池&#xff0c;用于分配消息缓存、批处理缓存等对象&#xff0c;以减少频繁调用内存分配函数的开销。 Kafka内存池的实现利用了…

怎么在本地运行umi框架的生产模式

怎么在本地运行umi框架的生产模式 第一种 先使用build进行编译构建, 在webstorm软件上可以在package.json文件上点击运行;或者直接在命令行上敲max build进行构建, 构建好后就会多个dist目录&#xff0c;里面就是编译好的静态文件。 然后在package.json中添加 "serve&qu…

UDP通信机制详解

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

Helm常用命令记录

问: 到哪里去搜索helm package? 答: artifacthub.io helm versionhelm repo add bitnami https://charts.bitnami.com/bitnamihelm install my-release bitnmai/mysqlkubectl get po --all-namespaceshelm uninstall my-release 安装monitoring,推荐kube-prometheus-stack&am…

【SWAT水文模型】SWAT水文模型建立及应用第三期:基于世界土壤数据库HWSD建立土壤库

SWAT水文模型建立及应用&#xff1a;土壤库建立 1 简介2 土壤数据下载2.1 数据下载方式2.1.1 世界土壤数据库HWSD数据2.1.2 中国土壤数据库 2.2 数据下载 3 土壤数据的准备3.1 SWAT土壤数据库参数3.2 提取HWSD中土壤参数3.3 土壤类型分布图的处理3.4 土壤质地转化3.5 土壤参数的…

人工智能浪潮中,AI如何为企业降本增效?

人工智能浪潮下&#xff0c;企业应如何抓住机遇&#xff0c;用AI降本增效&#xff1f;如何选择适合自身产业的人工智能服务&#xff1f;如果你想了解更多&#xff0c;本文或许能给你提供一点思路。 一、企业如何利用AI降本增效 在人工智能浪潮下&#xff0c;已有多款AI产品问世…

京东APP百亿级商品与车关系数据检索实践 | 京东云技术团队

导读 本文主要讲解了京东百亿级商品车型适配数据存储结构设计以及怎样实现适配接口的高性能查询。通过京东百亿级数据缓存架构设计实践案例&#xff0c;简单剖析了jimdb的位图(bitmap)函数和lua脚本应用在高性能场景。希望通过本文&#xff0c;读者可以对缓存的内部结构知识有…

一文带你写好:项目说明文档README.md

1、前言 公开项目中&#xff0c;一个好的 README 能帮助我们的公开项目&#xff0c;在 GitHub 上的众多项目和开发人员中脱颖而出&#xff1b;商业项目中&#xff0c;一个好的 README 能帮助部门同事更好理解用途和项目进展。下面我们一起讨论什么是 README 自述文件以及如何编…

如何使用node发布自己的包

一、新建文件夹 gzmTestNode二、npm init {"name": "gzmTestNode","version": "1.0.0","description": "处理不同日期函数组件","main": "index.js","scripts": {"test&quo…

从爆火的“哇呀挖”,思考我软件开发的人生意义何在?

【 在什么样的花园里面&#xff0c;挖呀挖呀挖&#xff0c;种什么样的种子&#xff0c;开什么样的花&#xff0c;在小小的花园里面&#xff0c;挖呀挖呀挖&#xff0c;种小小的种子&#xff0c;开小小的花&#xff0c;在大大的花园里面&#xff0c;挖呀挖呀挖&#xff0c;种大大…

springboot+vue火车订票管理系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的火车订票管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

String [中]

目录 一、 string 的深浅拷贝 0x00 构造函数与析构函数的实现 0x01 拷贝构造 0x02 赋值 0x03 整体代码 二、 string的实现 0x01 引入 0x02 c_str 0x03 默认构造函数 三、size()与operator[]的实现 0x01 size()的实现 0x02 operator[]的实现 0x03 遍历实现 四、迭代器…

同步任务、异步任务、宏任务、微任务、任务的执行过程实例详解、setTimeout()是同步还是异步

一、前言 JavaScript是单线程语言&#xff0c;也就是说&#xff0c;只有一条通道&#xff0c;且js中任务是按顺序依次执行的&#xff0c;但若有一个任务时间过长&#xff0c;就会让后续任务一直等待。为了解决这个问题&#xff0c;将任务分为同步任务和异步任务&#xff0c;异…

文案把卖点被埋没?如此挖掘电商产品卖点,让你轻松获客

绝大部分电商卖家开店面临的最大问题就是不知道如何写文案&#xff0c;直接复制品牌的文案容易被告Q权&#xff0c;自己写的又不吸引人&#xff0c;复制竞争对手的更是无法脱颖而出。同时你也不知道这个文案到底好不好&#xff0c;在别人那里可行的文案&#xff0c;可能你就完全…

CTF-PHP反序列化漏洞3-构造POP链

作者&#xff1a;Eason_LYC 悲观者预言失败&#xff0c;十言九中。 乐观者创造奇迹&#xff0c;一次即可。 一个人的价值&#xff0c;在于他所拥有的。可以不学无术&#xff0c;但不能一无所有&#xff01; 技术领域&#xff1a;WEB安全、网络攻防 关注WEB安全、网络攻防。我的…

宽表 VS 多表关联,谁才是大数据分析的最佳选择?

各位数据的朋友&#xff0c;大家好&#xff0c;我是老周道数据&#xff0c;和你一起&#xff0c;用常人思维数据分析&#xff0c;通过数据讲故事。 前段时间和一个客户就数据中台搭建的一些问题进行了交流&#xff0c;其中讨论最多的是到底是用宽表来实现业务需求&#xff0c;…

Lecture 13(Preparation):Network Compression

目录 Network Pruning Knowledge Distillation Parameter Quantization Architecture Design Dynamic Computation 下面介绍五个network compression的技术。这五个技术都是以软体为导向的&#xff0c;在软体上面对network进行压缩&#xff0c;不考虑硬体加速部分。 Netwo…

springboot+vue校园宿舍管理系统

项目简介 分享一个SpringBootvue所做的一个项目&#xff0c;有需要的私信 1.项目描述 访问地址 http://localhost:8088/login.html?redirect_urlhttp://localhost:8087/myproject 超级管理员账户 账户名&#xff1a;admin 密码&#xff1a;123456 系统管理员账户 账户名…

【系统集成项目管理工程师】计算题专题一

一、决策树和期望货币值 1、项目经理向客户推荐了四种供应商选择方案。每个方案损益值已标在下面的决策树上。根据预期收益值&#xff0c;应选择设备供应商 A.供应商1B.供应商2C.供应商3D.供应商4 解题&#xff1a; 供应商 1&#xff1a;60% * 10000 &#xff08;-30000&am…