最近公司需要使用Grafana做图表展示,监控一下线上指标,正好抽空学习了一下,功能很强大,也踩了不少坑,很多地方的动态配置也弄的一知半解,所以写一篇入门教程,来讲解一下以Mysql作为数据源的grafana图表展示。

Grafana入门教程

1.安装、下载

1. Windows安装下载

https://grafana.com/grafana/download?platform=windows

2.Mac安装下载

1.下载包体

curl -O https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.0.darwin-amd64.tar.gz

tar -zxvf grafana-enterprise-9.0.0.darwin-amd64.tar.gz

2.Brew下载启动

brew install grafana

brew services start grafana

Grafana入门教程

1.安装、下载

1. Windows安装下载

https://grafana.com/grafana/download?platform=windows

2.Mac安装下载

1.下载包体

curl -O https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.0.darwin-amd64.tar.gz

tar -zxvf grafana-enterprise-9.0.0.darwin-amd64.tar.gz

2.Brew下载启动

brew install grafana

brew services start grafana

2.导入导出

1.选择某一Dashboad

2.导出json文件

3.选择导入页面


导入即可。

3.进入控制台

Localhost:3000

1.配置数据源Data source

2.配置Dashboard

1.选择想要输出的表格,配置Query参数

2.手写sql语句

3.配置variable

进入某一个Dashboard

e.g

4.查询编辑器

1.Select table, time column and metric column (FROM)

当您第一次进入编辑模式或添加新查询时,Grafana 将尝试使用具有时间戳列和数字列的第一个表预填充查询构建器。

在 FROM 字段中,Grafana 将建议配置数据库中的表。

选择数据库用户有权访问的另一个数据库中的表或视图,您可以手动输入完全限定名称 (database.table),如 otherDb.metrics。

时间列字段是指保存您的时间值的列的名称。为 Metric 列字段选择一个值是可选的。如果选择了一个值,Metric 列字段将用作系列名称。

度量列建议将仅包含具有文本数据类型(text、tinytext、mediumtext、longtext、varchar、char)的列。

如果您想使用具有不同数据类型的列作为度量列,您可以输入带有强制转换的列名:CAST(numericColumn as CHAR)。

您还可以在度量列字段中输入任意 SQL 表达式,这些表达式的计算结果为文本数据类型,如 CONCAT(column1, “ “, CAST(numericColumn as CHAR))。

2.Columns and Aggregation functions (SELECT)

在 SELECT 行中,您可以指定要使用的列和函数。

在列字段中,您可以编写任意表达式,而不是像 column1 * column2 / column3 这样的列名。

如果使用聚合函数,则需要对结果集进行分组。

如果添加聚合函数,编辑器将自动添加 GROUP BY 时间。

您可以通过单击加号按钮并从菜单中选择列来添加更多值列。

多个值列将在图形面板中绘制为单独的系列。

3.Filter data (WHERE)

要添加过滤器,请单击 WHERE 条件右侧的加号图标。

您可以通过单击过滤器并选择移除来移除过滤器。

当前选定时间范围的过滤器会自动添加到新查询中。

4.Gap Filling

当你按时间分组时,Grafana 可以填充缺失值。

time 函数接受两个参数。

第一个参数是您想要分组的时间窗口,第二个参数是您希望 Grafana 填充缺失项的值。

5.Text Editor Mode (RAW)

您可以通过单击图标并选择切换编辑器模式或单击查询下方的编辑 SQL 来切换到原始查询编辑器模式。

如果您使用原始查询编辑器,请确保您的查询至少具有 ORDER BY 时间和返回时间范围的过滤器。

5.Panel Option

解释:

  1. Tooltip mode也即是鼠标移动到图形上面展示所有的指标,还是展示鼠标位置的指标。用于多条折线指标。
  2. Legend标志模式,指标的显示类型,表格还是列表等。
  3. Standard options配置属性,比如单位值,单位范围等。
  4. Thresholds显示阈值线,比如告警线,警告线等。
  5. Graph styles图表的样式,直线弯线。

6.Q&S

  1. 时间间隔8小时

修改时区,Configuration - 》 preferences -》 Timezone -》 选择UTC时间 -> save

或者进入某个Dashboard -》 settings -》 General -》Time options

  1. Grafana 时间戳转具体时间

Grafana直接会转换,确定好时区即可。

  1. 如何动态进行传参

进入dashboard settings,选择variable配置,选择数据源或者固定值,如若要传入其他variable,用$value传入。

  1. 如何进行分组

在添加add panel的时候 右侧有个add a new row添加分隔符。

  1. Grafana动态连接数据源

某些场景下,可能连接的数据库/或者es下的index是按照时间变化的,这个时候我们可以配置动态的数据。如果还是无法连接到es,确定该账号权限。

[log_abc_]YYYY_MM_DD 用中括号包含参数 YYYY_MM_DD代表通配符

  1. Grafana如何根据时间选择器动态修改sql语句

官网通过 $_from , $_to来获取属性
https://grafana.com/docs/grafana/latest/variables/variable-types/global-variables/

总结

Grafana是一款很强大可视化监控软件,支持数据源齐全,也包括很强大动态数据源、动态参数功能,也包含丰富多样的图表软件,我觉得比superset、metabase等更为强大多样。

Grafana入门教程相关推荐

  1. 【监控仪表系统】Grafana 中文入门教程 | 构建你的第一个仪表盘

    Grafana 读音:/grəˈfɑːnˌɑː/ Grafana 中文入门教程 1. Grafana 是什么 Grafana 支持的数据源 2. 什么情况下会用到 Grafana 或者监控仪表盘 3. ...

  2. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  3. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  4. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  5. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  6. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  7. python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...

  8. air调用java,AIR2.0入门教程:与Java应用交互

    在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...

  9. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

最新文章

  1. html选择按钮selected,HTML Option defaultSelected用法及代码示例
  2. Python测试框架pytest(02)PyCharm设置运行pytest、pytest.main()
  3. 多文多面阐述HMM很清晰
  4. Python语法中的模糊语义,你知道吗?
  5. 人工机器:jetsonnano推理时出现 Segmentation fault(core dumped)
  6. websocket demo
  7. 剑灵傲雪区最新服务器,12.8日势力优化具体内容 各大区服务器互通情况
  8. 汇编语言---GCC内联汇编
  9. 机器学习中的相似性度量(转载)
  10. f-stack nginx 单进程模式BSD网络初始化流程
  11. turbo c用C语言编写窗口,Turbo C 2.0使用教程(使用Turbo C 2.0编写C语言程序)
  12. Mybatis-plus 代码生成器(新)工具类
  13. 武汉大学计算机学院徐霜,物联网工程专业建设与实践教学研究_余琍
  14. SM系列国密算法简介
  15. JAVA:实现RabinKarpAlgorithm拉宾卡普算法(附完整源码)
  16. 软件测试周刊(第82期):其实所有纠结做选择的人心里早就有了答案,咨询只是想得到内心所倾向的选择。
  17. 波及Win 11,让安全员自动放弃的零日漏洞,微软这次麻烦了
  18. 免费的行程单打印软件
  19. 新闻传播专业的本科毕业论文,有哪些比较好的选题?
  20. 第六周 Java语法总结_设计原则_工厂模式_单例模式_代理模式(静态代理_动态代理)_递归_IO流_网络编程(UDP_TCP)_反射_数据库

热门文章

  1. 直播间留不住观众?3个技巧教你提高快手直播间留存率
  2. 【java项目学习笔记】基于servlet+jsp+jdbc的注册登录系统
  3. 前端HTML学习笔记(一)
  4. 终于搞定Linux的NAT即时生效问题
  5. elementUi分页删除最后一页数据不刷新回到前一页的情况*
  6. 大型网站用的什么服务器,大型网站在用什么web服务器?Apache, nginx, lighttpd
  7. 视频美颜sdk中人脸识别的主要实现流程
  8. android 服务日志文件,Android系统日志文件位置
  9. HDU1004-让气球上升
  10. 打开网页出现“您的连接不是私密连接”怎么办?