Grafana 发布官方 InfluxDB V3 数据源:配置和使用快速入门指南

导航至

是的,标题说明了一切: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 企业版 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 演示 生成的数据。

数据浏览器

在“探索”面板中,我们选择 InfluxDB V3 数据源。这为导航我们当前的数据库模式以及构建基本 SQL 查询提供了 SQL 浏览器。

让我们首先创建一个表格,显示最近一小时的所有列。

要生成此表,我们只需通过下拉面板选择我们要查看的表(度量)和列(标签和字段)。我们还可以制定更具体的 SQL 查询

在使用基本浏览器生成一些 SQL 后,我可以编辑 SQL 吗?快速答案是肯定的;只需从 构建器 切换到 代码。

从表格到时间序列

由于 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 repo 中打开一个 issue。我们仅仅触及了 InfluxDB 数据源重写中所做更改的表面。请务必查看下一篇博客,我们将在其中更深入地探讨一些功能和实现,包括将数据源移动到 Grafana 后端。

您可以在此处观看所有操作