Grafana系列之Dashboard:新增仪表板、新增变量、过滤变量、变量查询、导入仪表板、变量联动、Grafana Alert

概述

关于Prometheus和Grafana的安装,略过。

写在前面

  • Dashboard:仪表板,可包含多个Panel
  • Panel:面板,Dashboard中的组件

如有写得不对的地方,烦请指出。

新增仪表板

点击右上角的
在这里插入图片描述
选择New dashboard,
在这里插入图片描述
备注:上图自有探索->自由探索。

自由探索

点击Add visualizaton,出现选择数据源界面,
在这里插入图片描述
如上图所示,一个Grafana可以新增多个Prometheus数据源。选择Prometheus数据源,然后出现如下视图
在这里插入图片描述
点击Code,输入http_server_requests,Grafana有自动补齐提示,也就是说,我们现在是在Grafana里写PromQL。

选择不同的数据源,写的Code不一样,如果选择的是Loki,则写Code时需要遵从LogQL语法(计划会另写一篇博客)。

勾选Explain,下面会出现关于code的解释,比如下面的1 Fetch all series matching metric name and label filters.,翻译过来就是抓取所有满足指标名称和标签过滤符的序列
在这里插入图片描述

变量

在Grafana中,用户可为仪表板定义一组变量(Variables),变量一般包含一个到多个可选值。通过将变量渲染为一个下拉框,使用户可动态地调整变量的值,进而查询不同标签(Tag)下的数据,从而实现分组(Group by)效果

在仪表板右上角,点击Settings,会发现若干个Tab标签页,其中第三个Variables就是变量
在这里插入图片描述
点击新增变量

在这里插入图片描述

变量是仪表板全局生效的,一个仪表板如果有多个面板,则全部面板都会复用这个变量,也就是说,放在一个仪表板里的多个面板最好是强相关的(能复用这些变量的,负责查询面板会出现No Data问题)。

变量过滤

http_server_requests(参考Grails应用http.server.requests指标数据采集问题排查及解决)这个Micrometer默认暴露出来的指标为例,在Prometheus Graph页面查询此指标时,有如下图所示几个标签组(注意,下文会使用这个数据):

  • container:容器,表示是Pushgateway采集的
  • endpoint:采集方式
  • exception:API接口异常
  • job:即应用,服务,非常
### 创建自定义仪表盘的流程 在 Grafana 中创建自定义仪表盘是一项重要的技能,可以帮助用户更高效地监控和分析数据。以下是具体方法: #### 启动并登录 Grafana 为了访问 Grafana Web 页面,需先启动服务并通过默认地址 `localhost:3000` 访问。默认情况下,用户名和密码均为 `admin`[^1]。 #### 配置数据源 在创建仪表盘之前,需要添加适当的数据源(如 Prometheus)。通过导航到 **Configuration -> Data Sources** 并点击 **Add data source** 来完成此操作。选择所需的数据源类型(例如 Prometheus),填写必要的连接参数后保存即可。 #### 创建新的仪表盘 进入 Grafana 主界面后,可以通过点击左侧菜单栏中的加号图标 (**+**) 或者直接从主页选择 **Create Dashboard** 开始构建新仪表盘。这将引导至编辑模式,在这里可以自由设计布局和添加可视化组件[^2]。 #### 设计面板 每个仪表盘由多个面板组成,这些面板显示来自不同查询的结果。要新增一个面板,可以选择右上角的新建按钮或者拖拽方式来实现。随后设置查询语句以获取目标指标,并调整图表样式使其更加直观易懂。 对于基于 Prometheus 的时间序列数据库来说,编写 PromQL (Prometheus Query Language) 是必不可少的一部分。例如,如果想查看某个节点 CPU 使用率随时间变化情况,则可能需要用到如下表达式: ```promql rate(node_cpu_seconds_total{mode="user"}[5m]) * 100 ``` #### 应用最佳实践 当设计仪表盘时应遵循一些通用原则以便于理解和维护。比如明确知道想要达成什么目的;保持简洁明了而不至于信息过载;合理利用颜色编码区分正常状态与异常状况等等。 --- ### 示例代码片段 下面给出一段简单的 Python 脚本用来模拟向 Prometheus 推送测试数据的过程作为补充说明: ```python from prometheus_client import start_http_server, Gauge import random import time if __name__ == '__main__': g = Gauge('test_metric', 'Description of test metric') # Start up the server to expose metrics. start_http_server(8000) while True: value = random.uniform(-1, 1) g.set(value) print(f"Set gauge value to {value}") time.sleep(1) ``` 上述脚本会每隔一秒生成一个新的随机数并将之设为名为 `test_metric` 的度量标准当前值,从而允许我们在关联好的 Grafana-Prometheus 环境里观察其动态表现。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

johnny233

晚饭能不能加鸡腿就靠你了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值