您现在的位置是:亿华云 > 域名
后端程序员也可以用Grafana做出漂亮可视化界面!
亿华云2025-10-04 04:00:33【域名】9人已围观
简介前言Grafana 有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘dashboard和图形编辑器。此篇文章主要来记录学习 如何使用mysql打造属于我们的可视化监控仪表盘。安装grafna采用如下
前言
Grafana 有着非常漂亮的后端图表和布局展示,功能齐全的程序出漂度量仪表盘dashboard和图形编辑器。此篇文章主要来记录学习 如何使用mysql打造属于我们的员也可视化监控仪表盘。
安装grafna
采用如下命令直接安装grafna。可用或是视化下载.tar.gz包自行安装。
sudo apt-get install -y apt-transport-https sudo apt-get install -y software-properties-common wget wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" sudo apt-get update sudo apt-get install grafana在一个Dashboard中一个最基本的界面可视化单元为一个Panel(面板)。
每一个Panel可以配置自己查询的后端数据源以及数据查询方式。当然这里我们使用Mysql作为数据源,程序出漂其查询方式就是员也Sql语句。
扩展一下思路:由于每个Panel是可用完全独立的,因此在一个Dashboard中,视化往往可能会包含来自多个Data Source的界面数据。也就是后端说A panel你可以从mysql中查询数据,B panel你可以从es中查询,程序出漂很灵活的员也自由组合。
grafna启动相关命令
查看grafna状态 sudo systemctl status grafana-server 重启grafna service grafana-server restart配置grafna等操作,可以参看官方文档:
https://grafana.com/docs/grafana/latest/installation/configuration/
运行一个官网的案例
Grafana还专门为Dashboard提供分享服务,你也可以把自己做得漂亮的界面上传上去供大家参考交流,传送门是:
https://grafana.com/dashboards
在这里,香港云服务器我使用的是Id为7991的监控面板。
添加mysql数据源
首先,从左侧的菜单栏配置项中选中数据源。
grafna支持的数据源比较多,这里我们手动搜索一下mysql。
选中之后,填写完具体的数据库地址和密码后,保存即可。
导入面板
解决报错导入面板后后提示Templating init failed Error 1146: Table my2.status doesnt exist错误,这是因为我们还有一个工作没做完,监控mysql时需要在mysql server运行的机器上安装my2.status表,根据官网面板的说明,找到github仓库地址:
https://github.com/meob/my2Collector
在数据库中执行my2.sql 就能成果导入了,效果如下:
从说明我们可以看到, My2Collector (my2)是一个简单的、自我包含的MySQL统计信息收集器,my2每10分钟自动执行一次存储程序来收集Mysql的一些性能数据。
版本支持
my2可以连接到任何版本的MySQL,MariaDB,高防服务器Percona或其他fork,但是...对于旧的MySQL,发布的许多统计信息均不可用。
my2使用的计划作业自MySQL 5.1(2008)起可用。
PROCESSLIST表从5.1.7开始可用。
而GLOBAL_STATUS从5.1.12开始可用。
PERFORMANCE_SCHEMA在5.5版本中引入,在5.6版本中得到了极大的增强。
不同的MySQL版本之间有很多细微的差别:My2意识到并做了兼容,尝试收集所有可用信息,对于MySQL 8.0,提供了一个不同的脚本,my2在启用了性能模式的MySQL 5.7,MySQL 8.0和MariaDB 10.x中发挥了最大作用。
实战,基于Mysql业务表来创建监控
最简单的列表展示在 面板中选择table类型的 panel。
编写查询的sql语句,可以使用具体的别名。
特别注意时间序列:
返回列名中需要有time或time_sec的列,网站模板作为unix时间戳或任何sql原生日期。
特别注意,这里的时间转换函数:用法
- $__time(column) -> UNIX_TIMESTAMP(column) as time_sec - $__timeEpoch(column) -> UNIX_TIMESTAMP(column) as time_sec - $__timeFilter(column) -> column BETWEEN FROM_UNIXTIME(1492750877) AND FROM_UNIXTIME(1492750877) - $__unixEpochFilter(column) -> time_unix_epoch > 1492750877 AND time_unix_epoch < 1492750877 - $__unixEpochNanoFilter(column) -> column >= 1494410783152415214 AND column <= 1494497183142514872 - $__timeGroup(column,5m[, fillvalue]) -> cast(cast(UNIX_TIMESTAMP(column)/(300) as signed)*300 as signed) by setting fillvalue grafana will fill in missing values according to the interval fillvalue can be either a literal value, NULL or previous; previous will fill in the previous seen value or NULL if none has been seen yet - $__timeGroupAlias(column,5m) -> cast(cast(UNIX_TIMESTAMP(column)/(300) as signed)*300 as signed) AS "time" - $__unixEpochGroup(column,5m) -> column DIV 300 * 300 - $__unixEpochGroupAlias(column,5m) -> column DIV 300 * 300 AS "time"由上面的规则可知,如果数据里面的数据类型是bigint。那么时间筛选就需要使用:
$__unixEpochFilter(data_time/1000) 柱状图只需要在折线图的配置基础上,将model改为Bars即可展示柱状图。
Graph里面的选项有:General(常规选择)、Metrics(指标)、Axes(坐标轴)、Legend(图例)、 Display(显示样式)、Alert(告警)、Time range(时间范围)
Grafana是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。
希望这篇文章能给你带来帮助。
很赞哦!(2112)
相关文章
- 个人域名转为公司需要什么条件?个人域名转为公司该怎么做?
- 45个 Git 经典操作场景,专治不会合代码
- Redis 敢在线上做Keys正则匹配操作!你可以离职了!
- 应用服务器发生内存溢出怎么办?两个工具帮你解决问题
- 比较短的域名方便用户记忆和传播,它带来的好处往往会超过其他类型的域名,如果你非要域名短而且还要包含关键词,那么往往会事与愿违,现在这种域名基本上是可遇而不可求的。
- 10个简单步骤,完全理解SQL
- 自制小工具大大加速MySQL SQL语句优化(附源码)
- 揭秘 Nacos 的 AP 架构 「Distro 一致性协议」
- 新手可以注册cc域名吗?cc域名有什么特点?
- 详解MySQL数据库5层权限:全局、数据库层、表层、列层、子程序层