没有输入面板用于接受用户输入并将该数据插入 MySQL 或任何其他。 (格拉法纳 v7.0)
对于非常简约的输入数据,您可以将 grafana 变量用作 hack。
创建用于在 MySQL 中存储输入的示例表
CREATE TABLE `grafana_variable` (`variable` VARCHAR(64)) ENGINE = InnoDb;
在 Grafana 仪表板中单击设置图标:
然后点击:
添加变量:
返回仪表板,您应该会在顶部看到:
创建一个新的可视化面板或在任何现有面板中添加另一个查询并添加 SQL 查询:
INSERT INTO `grafana_variable` VALUES ('${myvar}');
现在每次您输入该字段时
然后点击离开它或使用 ie tab 键,数据将被插入到 MySQL 数据库中。
mysql> select * from grafana_variable;
+---------------------+
| variable |
+---------------------+
| this is just a test |
+---------------------+
1 row in set (0.08 sec)
这个 hack 的缺点是可视化图块的左上角会有错误图标:
带有信息(当您将鼠标悬停在其上时):
找不到名为 time 或 time_sec 的列
因为可视化图块的 sql 查询是插入数据而不是从数据库中选择数据,因此没有 time 或 time_sec 数据。
Grafana 也不处理多个 MySQL 语句,因此您无法通过在 INSERT INTO ... 语句之前或之后添加第二个 SELECT FROM 来修复它。也许这可以通过使用子查询或类似的东西以某种方式修补,但我没有进一步调查。
由于上述错误可能是由于与 hack 无关的多种原因,最好在单独的可视化磁贴中使用 hack 查询 - 您会记住的那个(或什至提供描述性面板磁贴)所以你知道那个错误没有什么异常。
有关变量的更多信息,请参阅grafana varialbes。
还有一个有用的现有变量列表,您可以使用与我创建的myvar 相同的方式。参见 MACROS here 部分例如:
$__timeFrom()
和
$__timeTo()
有显示时间范围的开始和结束。
权限和安全
整个 hack 之所以有效,是因为允许 grafana 使用的 MySQL 用户执行 INSERT 语句,但是如果 grafana 能够执行 ANY 语句,那么请确保不允许 grafana 使用的 MySQL 用户执行诸如 DROP ... 或任何语句之类的语句其他与INSERT 数据无关的数据放入grafana_variable 表中,如示例所示。
如果您使用 MySQL 作为数据源来显示数据,那么 grafana 用户也应该能够执行 SELECT 语句。
但仅此而已。
Read about MySQL user premissions