如何使用InfluxDB、Flux和InfluxQL构建Grafana仪表板

导航到

我们非常高兴今天发布了Grafana 7.1,它扩展了Grafana内置的InfluxDB数据源,使其能够在Flux语言InfluxQL中运行查询。这意味着连接Grafana到InfluxDB变得非常简单——无论您使用的是InfluxDB 1.8还是2.0,Flux还是InfluxQL。

由于这个InfluxDB数据源已集成到Grafana 7.1中,因此无需下载和安装单独的插件。您将获得一个简化的配置体验,这是Grafana和InfluxData工程团队在过去几个月中密切合作的结果,也是我们走向“快速实现卓越”的又一重要步骤。

Grafana dashboard InfluxDB

如果您是InfluxDB Cloud 2用户,Grafana已更新InfluxDB数据源以支持Flux,无需您单独安装Flux插件

如果您是InfluxDB 1.x用户,现在您可以在Grafana仪表板中使用Flux查询,除了InfluxQL。使用Grafana 7.1创建新的InfluxDB数据源,并选择Flux作为语言。Flux允许您编写超出InfluxQL限制的查询,如下所述。当然,您现有的InfluxQL查询将像以前一样继续工作。

利用InfluxDB Cloud 2中的InfluxQL与Grafana 7.1

如果您一直在使用InfluxDB 1.x并考虑使用InfluxDB Cloud 2,我们有一些激动人心的消息要与您分享。InfluxDB Cloud 2现在支持InfluxQL以及InfluxDB 1.x写API(详情见下文)。这意味着您可以注册InfluxDB Cloud 2,向其发送数据,并通过仅更改少量安全凭据来利用现有的仪表板。您的现有Grafana仪表板无需任何调整。

InfluxDB datasource

新的InfluxDB数据源支持InfluxQL和Flux

在您的Grafana仪表板查询中做更多的事情

使用Grafana 7.1,您可以通过使用Flux查询来完成一些在InfluxQL中无法实现的事情,从而创建更强大的查询来填充仪表板图表

  • 连接,以创建跨越多个存储桶的图表。例如,您可能需要一个Grafana图表来显示传输的字节数和每秒请求次数;Flux允许您查询这两个度量并将它们连接到一个表中。
  • 跨度量数学运算,它超越了简单的连接,允许您在连接表中的列上进行数学运算。例如,您可能想通过请求率除以错误率来得到错误率百分比。
  • 多个数据源,允许您使用来自MySQL、MariaDB、Postgres、Microsoft SQL Server、Snowflake、SQLite、AWS Athena以及Google BigTable等关系型数据库的元数据来丰富时间序列数据;或者从CSV文件中获取。当您的时序数据包含客户编号字段但不包含客户名称时,这非常有用。Flux允许您拉取客户名称,以便在Grafana仪表板上显示。这里有一些教程可以进一步解释。

Flux独有的其他功能包括

这里有一个InfluxQL和Flux的详细比较,包括代码示例。

如何将Grafana与InfluxDB集成

像平常一样登录Grafana,点击左侧的齿轮图标,然后选择数据源

InfluxDB datasources

点击添加数据源

InfluxDB add data source

将鼠标悬停在InfluxDB上,然后点击选择

InfluxDB choose data source type

到目前为止,如果你以前使用过 Grafana,这应该看起来很熟悉。但这里是 Grafana 7.1 的新功能:可以选择你想要使用的语言,InfluxQLFlux

InfluxDB data source language

如果你选择 InfluxQL,你将看到下面的配置页面。在填写 URL 字段时,请注意,对于 InfluxDB 1.8,默认端口是 8086。对于 InfluxDB Cloud 2,这里有一些 你可以使用的 URL。更多详细信息请参阅 此文档页面

grafana influxql configuration screenshot

如果你选择 Flux,以下是你要指定的内容

  1. 选择 InfluxDB 数据源
  2. 选择 Flux 语言
  3. 使用你的 InfluxDB Cloud 2 URL组织令牌 填写连接详细信息——如下面的截图所示。

我在我的 URL 中指定了 AWS US West 2 (Oregon),但你的运行区域可能不同。你的组织名称和桶名称也可能不同。

Configuring the InfluxDB data source in Grafana to use Flux

在 Grafana 中配置 InfluxDB 数据源以使用 Flux

你还可以在 Grafana 中创建多个 InfluxDB 数据源。这里有很多灵活性。例如,你可以

  • 创建两个数据源,指向相同的 InfluxDB 实例,其中一个使用 Flux,另一个使用 InfluxQL。(见下面的截图。)
  • 创建多个数据源以连接到不同的 InfluxDB 实例。

InfluxDB Cloud 数据源 Grafana<figcaption> 两个数据源都连接到 AWS Oregon 上的 InfluxDB Cloud 2,但一个使用 Flux,另一个使用 InfluxQL.</figcaption>

Graphana、InfluxDB、Flux 和 InfluxQL 的演示

以下是一个演示,展示了新的 InfluxDB Grafana 插件是如何工作的,该插件由 Grafana 团队成员 Ryan McKinleyInfluxDays London 2020 虚拟体验 上展示。

关于写入的更多灵活性

如上所述,我们已在 InfluxDB Cloud 2 中公开了 InfluxDB 1.x 写入 API。这意味着如果你有将数据发送到 InfluxDB 1.x 的代码,你现在可以将该代码指向 InfluxDB Cloud 2 并写入你的数据。在这里你可以了解更多关于此 InfluxDB 1.x 兼容 API 的信息,包括如何对所有写入和查询进行身份验证,以及如何访问兼容端点。这种兼容性是我们 InfluxDB 2.0 开源 (OSS) 路线图的一部分。有关更多详细信息,请在本季度稍后查看。

可用性

此集成今天随 Grafana 7.1 的推出而提供。插件已集成到核心 Grafana 中,因此无需安装单独的插件。

让我们深入了解集成的细节。在所有不同的 Grafana、InfluxDB 和语言(InfluxQL/Flux)变体之间,有许多可能的组合。

新的 InfluxDB 数据源对于 Grafana 7.1 都有效,无论你是使用 Grafana 开源Grafana 企业版 还是 Grafana 云,并支持

  • 使用 Flux 运行的 Grafana 7.1 仪表板,针对 InfluxDB Cloud 2InfluxDB OSS 2.0InfluxDB 1.8+(企业版、Cloud 1 或 OSS)
  • 使用 InfluxQL 运行的 Grafana 7.1 仪表板,针对 InfluxDB Cloud 2InfluxDB 1.8+(企业版、Cloud 1 或 OSS)

或者如果你更喜欢表格视图

InfluxDB 产品 版本 InfluxQL? Flux?
开源 1.8
企业版 1.8
1.8
2.0
开源 2.0 ,将在今年晚些时候推出

我想坦率地谈一下一个目前不存在的集成——但我们计划在今年晚些时候交付

使用 InfluxQL 的 Grafana 7.1 仪表板,运行在 InfluxDB OSS 2.0 上。

Grafana + InfluxDB 集成的价格是多少?

新的 InfluxDB 数据源已内置到 Grafana 7.1 中。无需安装或单独购买任何插件。以下是 Grafana CloudInfluxDB Cloud 的定价信息。

开始使用 Grafana 和 InfluxDB

Grafana 和 InfluxDB 可提供多种不同的形态。以下是您可以找到 Grafana 版本 和 InfluxDB 版本 的位置。

一旦您已将 Grafana 和 InfluxDB 启动并运行,请参阅本指南了解如何 将 InfluxDB 1.8 集成到 Grafana,以及本文档关于 将 InfluxDB 2.0 集成到 Grafana 的说明。然后加入我们始终乐于助人的 InfluxDB 社区 Slack 询问问题。

其他 Grafana 资源: 如何将 Grafana 与 Home Assistant 集成