Grafana-在X轴上显示NON DataTime日期/时间字段

时间:2020-11-03 19:41:33

标签: datetime monitoring grafana metrics x-axis

Grafana 6.x / 7.x 版本,尤其是7.x

如果我在Elasticsearch索引(<-Grafana:它指的是)或平面文件(csv)中具有以下数据

Sprint Velocity:    10  20  15  35  22
--------------------------------------
Sprint Name:        S1  S2  S3  S4  S5
Sprint Number:      1   2   3   4   5

然后,在Grafana中,可以在Y轴上显示Velocity字段,在 X轴上显示 Sprint Name/Number >基于非日期时间的字段)。

在ELK(Kibana GUI)中,我有一个可视化文件,它通过Index-Pattern指向Elasticsearch Index(针对上述数据),并且我可以轻松地渲染/显示具有X轴的LINE可视化文件(术语:使用Sprint名称或冲刺编号)。

我正在Grafana中尝试实现相同目标,但遇到了困难。 https://grafana.com/grafana/plugins/natel-plotly-panel也不起作用,因为仅在Grafana 6版本之前才受支持。

此外,如果我使用“系列” 选项,则由于Grafana认为它们都是单独的系列,因此不允许在图中连接点。 例如,:如果我使用这种方法:https://github.com/gipong/grafana-groupedbarchart-panel我无法获得LINE图表在Y轴上的一个度量(速度),而BAR图表却无法在Y轴上获得另一个度量(TotalSprintPoints)

1 个答案:

答案 0 :(得分:-1)

在格拉法纳(Grafana)中,可能性很小(但是需要做一些腿部工作)。用户可以使用MySQL(作为数据源)在X轴上可视化非时间序列数据。 一个人也可以使用PostgreSQL。有关更多信息,请阅读下面的博客。感谢肖恩·布拉德利。

https://medium.com/grafana-tutorials/graphing-non-time-series-sql-data-in-grafana-8a0ea8c55ee3

Grafana可以非常好地绘制来自许多不同类型数据源的时间序列数据。但有时您只想绘制简单的非时间序列数据的图表。即没有时间戳的数据,具有定期更新的统计信息的平面表或只是简单的查找表。

示例非时间序列数据作为平面表。

enter image description here

您希望看到这些简单的数据,如下图所示。 enter image description here

Grafana需要时间序列数据来创建图形,因此从非时间序列数据中不可能立即做到这一点,但是有一种方法,下面显示了如何你可以做到的。

要自己进行测试,您应该有一个 MySQL 数据库,并在Grafana中与其建立 创建数据源 连接。 如果您没有MySQL数据库,但确实有Grafana服务器,则可以按照 https://sbcode.net/grafana/create-mysql-data-source/ 中的说明快速安装自己的MySQL服务器并在Grafana中配置MySQL数据源。

现在要组织一个包含一些非时间序列数据的简单平面表。

在我的MySQL服务器上,我们可以有一个名为 exampledb 的架构。在其中创建一个名为 flat_table_example

的表

在服务器上打开一个MySQL提示符,并使用此脚本创建表

CREATE TABLE `exampledb`.`flat_table_example` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(45) DEFAULT NULL,
  `total` decimal(10,0) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

现在,让我们插入一些数据:

INSERT INTO `exampledb`.`flat_table_example`
(`username`,
`total`)
VALUES
('Cat',56),
('Dog',5),
('Lizard',4),
('Crocodile',2),
('Koala',50),
('Cassowary',2),
('Peacock',1),
('Emu',1),
('Kangaroo',1);

检查数据是否存在,请运行以下命令:

SELECT * FROM ``exampledb`.`flat_table_example`;

**现在**,打开您的** Grafana UI **,**确保**您的** MySQL数据源**已经**配置并连接**,然后转到“浏览”选项卡。

选择您的 MySQL数据源,然后按 Edit SQL 按钮 enter image description here

替换下面的默认SQL,

SELECT username AS metric, total as value FROM flat_table_example ORDER BY id

并选择 Format As = Table (格式为=表格),将数据显示为Grafana中的表格。 enter image description here

现在,此数据不是不是 时间序列数据,具有 时间戳列< / em>,因此Grafana将不知道如何绘制图形。所以这是窍门,

修改要使用的SQL语句

SELECT NOW() AS "time", username AS metric, total as value FROM flat_table_example ORDER BY id

现在数据已转换为时间序列。现在,所有行都带有时间戳,并且都是相同的,并且每次执行查询时都会更新以立即显示。您可能会认为这是错误的,但这不是完美的。 enter image description here

Grafana现在可以将这些数据绘制成漂亮的图形。

立即离开浏览页面,转到管理仪表板,创建新仪表板添加查询 < / p>

选择您的 MySQL 数据源,像以前一样按 Edit SQL 按钮,将新的SQL脚本粘贴到文本区域中。但是这一次,保留格式为=时间序列,而不是表格 enter image description here

现在转到可视化,选择 Bar Gauge 。马上,您就在下面。 enter image description here

您可以选择方向=水平字段单位=百分比(0-100) enter image description here

您可以选择基本的 Gauge 可视化效果以在下面获得此结果,并为自己添加一个额外的 Threshold enter image description here

甚至选择默认的图形可视化效果,但还要确保您选择X轴模式=系列 enter image description here

视频教程 要观看有关在Grafana中查看非时间序列数据的视频教程,请访问, https://youtu.be/Q6aw9oInsyw

特别感谢Sean B。

此处针对分组图表提到了

另一种方式https://github.com/gipong/grafana-groupedbarchart-panel