Grafana的Explore探索的功能是专门为查询设计的。与传统的仪表盘构建界面不同,探索菜单提供了一个无干扰的环境,专注于数据的检索与验证。这对于需要迭代查询或只想快速浏览数据而非构建整个仪表盘的用户特别有用。如果您的数据源支持图表和表格数据,则无需创建仪表板,因为探索可以同时以这两种格式显示结果,这有助于快速、详细地进行实时数据分析。
访问探索
要访问探索点击左侧菜单中的探索或者要从仪表板面板开始一个现有的查询,在面板菜单中选择“探索”选项,这将打开一个带有面板查询的探索页面,使您能够在仪表板外部调整或迭代查询。
从左上角的下拉菜单中选择一个数据源,使用为特定数据源提供的查询编辑器开始编写您的查询,每个查询编辑器根据每个数据源的独特元素而有所不同。然后点击右上角的“运行查询”即可执行您的查询。左侧边“Outline”导航栏用于跟踪你在探索中创建的查询和可视化,它允许你快速在它们之间切换。
单击“拆分”按钮,可复制当前查询并将页面分成两个并排的查询。你也可以为新查询选择不同的数据源或不同的指标,从而可以在两个不同的服务器之间比较相同的查询,分屏视图功能使得在同一页面上并排比较可视化或同时查看相关数据变得简单。分屏视图允许你同步两个面板的时间选择器,这意味着无论你如何调整时间范围,两个面板的数据始终保持同步,为比较分析提供了极大便利。
单击“查询历史记录”按钮,可查看你在探索中创建的所有查询列表,查询历史的保留期限为两周,超过两周的查询将自动删除。对于每个单独的历史查询,你可以点击“Run query”重新运行查询。
单击“查询检查器“可为您提供有关查询的详细统计信息,帮助您理解和解决查询问题。查询检查器还允许您查看原始数据,将数据导出为逗号分隔值(CSV)文件,以TXT格式导出日志结果,并查看查询请求。
- Stats:显示与查询相关的统计数据,包括执行查询所需的时间、数据处理时间和返回的数据量。
- Query:提供原始请求和响应数据以及Grafana查询数据源的时间。
- JSON:允许查看和复制JSON数据及其JSON数据帧结构。
- Data:显示查询返回的原始数据,您可以将信息下载为CSV文件。
运行查询结果可点击“Add”,选择”Add to dashborad“可直接将此面板添加到新创建或已有的仪表板中。
Mysql数据源探索
MySQL查询编辑器有两种模式:Bulider构建器模式和Code代码模式。构建器模式通过可视化界面帮助你构建查询;代码模式允许进行高级查询,并支持复杂的SQL查询编写。
“Builder”选项可以根据表达式进行构建查询数据,适合非专业人员使用。
- Format:选择MySQL查询的格式。默认为Table表格。如果您选择Time series时间序列格式选项,则其中一个列必须是时间。
- Dataset:从下拉菜单中选择一个数据库进行查询。
- Table:从下拉菜单中选择一个表,表对应所选的数据库。
- Data operations:数据操作可选,从下拉菜单中选择一个聚合函数。您可以点击加号添加多个数据操作,点击“X”删除一个数据操作,点击垃圾桶图标删除整个列。
- Column:从下拉菜单中选择您要查询数据库表对应的列,也可以选择星号(*)表示所有列。
- Alias:别名可选,从下拉菜单中选择一个别名,也可以在框中输入自己的别名并点击Enter键添加,点击“X”删除别名。
- Filter:切换以添加过滤器可选。SQL的WHERE查询条件。如果您启用筛选,可以从下拉菜单中添加一个用于筛选的列。要对更多列进行筛选,请点击条件下拉菜单右侧的“+”符号。您可以从条件旁边的下拉菜单中选择各种运算符。当添加多个筛选条件时,您可以添加“AND”运算符以显示所有为真的条件,或添加“OR”运算符以显示任何为真的条件。要删除筛选器,请点击该筛选器下拉菜单旁边的“X”按钮。
- Group:按列分组可选。SQL的GROUP BY分组统计。
- Order:排序可选。SQL的ORDER BY选择升序(ASC)或降序(DESC),并可以设置检索结果数量Limit默认值为50。
- Preview:预览可选。切换以查看查询生成器生成的SQL查询预览,预览默认开启。
比如我们使用Mysql数据源去探索查看Zabbix Server服务器的内存使用率步骤如下:
1.Dataset选择“zabbix”,Table选择“hosts”,Column选择“*”,点击“Run query”运行查询找到Zabbix Server对应的hostid值为“10084”。
2.Dataset选择“zabbix”,Table选择“items”,Column选择“*”,切换Filter添加过滤器,选择“AND”运算符,选择“hostid”==“10084”,再添加选择关于内存使用率键值“key_”==“vm.memory.utilization”。点击“Run query”运行查询此时可以找到Zabbix Server对应的关于内存使用率itemid值为“42270”。
3.Dataset选择“zabbix”,Table选择“history”,Column选择“*”,切换Filter添加过滤器,选择“AND”运算符,选择“itemid”==“42270”,切换Order by选择以“clock”时间降序,并可设置Limit限制数量,此时结果value值即为最新的Zabbix Server内存使用率大小。
切换为“Code”代码模式我们可以直接编写sql语句去查询数据。比如上述查询Zabbix Server内存使用率,我们可直接编写sql语言如下,可点击右下角的“{}”来格式化查询。
SELECT
*
FROM
zabbix.history
WHERE
itemid = (
SELECT
itemid
FROM
items
WHERE
hostid = (
SELECT
hostid
FROM
hosts
WHERE
host = 'Zabbix server'
)
AND key_ = 'vm.memory.utilization'
)
ORDER BY
clock DESC
LIMIT
50;
我们将clock字段中的Unix时间戳(以秒为单位)转换为可读的日期时间格式,可以使用数据库提供的日期时间函数“FROM_UNIXTIME”并且转换为北京时间,显示datetime和value两个字段,最终执行sql如下:
SELECT
FROM_UNIXTIME(clock - 8 * 3600) AS datetime,
value
FROM
zabbix.history
WHERE
itemid = (
SELECT
itemid
FROM
items
WHERE
hostid = (
SELECT
hostid
FROM
hosts
WHERE
host = 'Zabbix server'
)
AND key_ = 'vm.memory.utilization'
)
ORDER BY
clock DESC
LIMIT
50;
点击“Add to dashborad”可直接将该面板添加到已有的仪表板中。
另外我们还可以根据实际情况对该面板进行调整设置。比如通过配置字段覆盖可将value数值显示为百分比的形式。点击“Add field override”,选择“Fields with type”根据类型选择字段,这里选择“Numer”字段,点击“Add override property”添加覆盖属性,选择“Standard options > Unit”,选择“ Misc > Percent (0-100) ”,此时内存使用率数值即可以百分比形式显示。