Grafana发布官方InfluxDB V3数据源:配置和使用快速入门指南
作者:Jay Clifford / 开发者
2024年1月22日
导航到
是的,标题已经说明了一切:Grafana发布了InfluxDB的官方V3插件数据源!
在深入教程之前,我们想感谢Grafana的技术负责人Ismail Simsek。Ismail在将V3 SQL插件添加到InfluxDB数据源并作出重要的后端代码改进方面发挥了关键作用。
为了澄清,这个版本并不是一个全新的数据源。相反,它将社区开发的Flight SQL插件整合到官方InfluxDB数据源中,并加入了几个高度请求的功能和性能改进。这篇博客将教你如何配置新的数据源插件与你的InfluxDB V3实例。
我在哪里可以找到V3数据源?
V3 Flight SQL插件已被添加到Grafana的官方InfluxDB数据源中。以下是Grafana版本和你需要安装的版本表格
版本 | 版本 |
Grafana OSS | 10.3.0+ |
Grafana Enterpise | 10.3.0+ |
Grafana Cloud | 最新版 |
让我们进入Grafana Cloud,找到官方InfluxDB V3数据源
这是我们的Grafana Cloud实例。在左侧导航面板中,我们选择数据源。然后,我们选择添加数据源,并从时间序列数据库列表中选择官方InfluxDB数据源。
这里没有太大变化!我们像以前一样找到并创建我们的新InfluxDB数据源。接下来,让我们继续配置,学习如何使用V3 SQL插件。
如何配置我的V3数据源?
像往常一样,我们需要给数据源一个有用的名字。在这个例子中,我把它命名为InfluxDB V3。接下来,我们需要选择我们的查询语言——这也是我们启用V3插件的地方。
在下拉列表中,你现在会看到第三个选项,SQL。选择SQL作为新语言将自动利用Grafana后端新集成的Flight SQL API。这也改变了我们需要填写表单的其余参数。
您需要定义以下内容
参数 | 描述 |
URL | 您要连接的InfluxDB V3主机。在这种情况下,如果您省略端口,它将自动默认为协议的默认端口(http -> 80,https -> 443)。以下是一些示例 注意:端口定义目前仅对集群和OSS/社区用户重要。 |
数据库 | 定义您要查询的数据库/存储桶名称。请注意,这是Grafana数据源实现的一部分,一对一。在这个例子中,我们连接到一个名为factory的数据库。 |
令牌 | 最后,您需要为您定义的特定数据库创建一个具有至少只读权限的令牌。 |
完成表单后,选择保存并测试。这应该导致成功连接到InfluxDB V3数据源。
快速入门101
现在我们已经将Grafana连接到InfluxDB V3,让我们构建一个简单的可视化,并在过程中讨论一些功能。对于这个演示,我使用了来自Arrow Task Engine演示生成的数据。
数据探索器
在Explore面板中,我们选择我们的InfluxDB V3数据源。这提供了一个SQL探索器,用于导航当前数据库架构以及构建基本的SQL查询。
让我们首先创建一个显示过去一小时所有列的表格。
要生成此表,我们只需通过下拉面板选择我们想要查看的表(度量)和列(标签和字段)。我们还可以构建更具体的SQL查询。
使用基本探索器生成一些SQL之后,我可以编辑SQL吗?快速答案是肯定的;只需从Builder切换到Code。
从表格到时间序列
由于InfluxDB 3.0现在返回的是表格而不是表格流,V3插件默认使用Grafana表格格式。让我们构建一个查询,并将其转换为线图的时间序列格式进行可视化。
这是我们的SQL
SELECT "vibration", "machineID", time
FROM iox.machine_data
WHERE time >= $__timeFrom AND time <= $__timeTo AND "machineID" = 'machine1'
ORDER BY time
请注意,我们必须在我们的查询中添加ORDER BY time
以确保时间戳的顺序。
现在我们可以简单地使用下拉菜单将格式从表格更改为时间序列。
我们将把这个查询保存到仪表板中,以探索本博客的最后一项功能:基于查询的仪表板变量。
仪表板变量
Flight SQL社区插件中缺失的一个功能是基于查询的仪表板变量。这些变量允许您定义一个查询来填充Grafana仪表板的下拉菜单。您可以在其他查询中使用这些变量来创建更动态的体验。
在本例中,我们创建了一个仪表板变量来列出单个机器标签。这可以在我们的折线图查询中通过引用$machineID
(仪表板变量的名称)来实现。
SELECT "vibration", "machineID", time
FROM iox.machine_data
WHERE time >= $__timeFrom AND time <= $__timeTo AND "machineID" = '$machineID'
ORDER BY time
在图片的左上角,您可以看到我们填充的仪表板变量。我们选择了machine2,这似乎显示了一个异常……
下一步
我们非常兴奋地看到社区手中的新改进的InfluxDB数据源。我们希望新插件可以提供通过Flight SQL界面与InfluxDB V3交互的简化体验。如您所注意到的,这个新插件仍然是alpha版本,因此如果您有任何问题/功能请求,请通过我们的Slack社区或Grafana仓库中的问题来告诉我们。我们只是在InfluxDB数据源重写中触及了表面。请确保查看下一篇博客,我们将更深入地探讨一些功能和实现,包括将数据源移至Grafana后端。
您可以在这里看到这一切的实际效果