如何使用 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 云 2 用户,Grafana 已更新 InfluxDB 数据源以支持 Flux,而无需您单独安装 Flux 插件

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

在 Grafana 7.1 中利用 InfluxQL 和 InfluxDB 云 2

如果您一直在使用 InfluxDB 1.x,并且考虑使用 InfluxDB 云 2,我们有一些令人兴奋的消息要分享。InfluxDB 云 2 现在支持 InfluxQL 以及 InfluxDB 1.x 写入 API(详情如下)。这意味着您可以注册 InfluxDB 云 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 云 2,以下是 您可以使用的 URL。更多详细信息请参见 此文档页面

grafana influxql configuration screenshot

如果您选择 Flux,则需要指定以下内容

  1. 选择 InfluxDB 数据源
  2. 选择 Flux 语言
  3. 填写连接详细信息,包括您的 InfluxDB 云 2 URL组织令牌存储桶 — 如下面的屏幕截图所示。

在这里,我在我的 URL 中指定了 AWS 美西 2 (俄勒冈),但您可能在不同的区域运行。您的组织名称和存储桶名称也可能不同。

Configuring the InfluxDB data source in Grafana to use Flux

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

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

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

InfluxDB 云数据源 Grafana<figcaption> 两个数据源都连接到 AWS 俄勒冈上的 InfluxDB 云 2,但一个使用 Flux,另一个使用 InfluxQL。</figcaption>

Grafana、InfluxDB、Flux 和 InfluxQL 演示

这是一个演示,展示了新的 Grafana InfluxDB 插件的工作原理,Grafana 团队成员 Ryan McKinleyInfluxDays London 2020 Virtual Experience 上进行了演示

写入方面更灵活

如上所述,我们在 InfluxDB 云 2 中公开了 InfluxDB 1.x 写入 API。这意味着如果您有代码向 InfluxDB 1.x 发送数据,您现在可以将该代码指向 InfluxDB 云 2 并写入您的数据。您可以在这里了解更多关于 InfluxDB 1.x 兼容性 API 的信息,包括如何验证您的所有写入和查询,以及如何访问兼容性端点。这种级别的兼容性是我们 InfluxDB 2.0 开源 (OSS) 路线图的一部分。请关注本季度晚些时候的更多详细信息。

可用性

此集成今天随 Grafana 7.1 的发布而推出。该插件内置于核心 Grafana 中,因此无需单独安装插件。

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

新的 Grafana InfluxDB 数据源适用于 Grafana 7.1,无论您使用的是 Grafana 开源版Grafana 企业版 还是 Grafana 云,并支持

  • 使用 Flux 的 Grafana 7.1 仪表板,针对 InfluxDB 云 2InfluxDB OSS 2.0InfluxDB 1.8+(企业版、云 1 或 OSS)运行
  • 使用 InfluxQL 的 Grafana 7.1 仪表板,针对 InfluxDB 云 2InfluxDB 1.8+(企业版、云 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 云InfluxDB 云的定价。

开始使用 Grafana 和 InfluxDB

Grafana 和 InfluxDB 以多种不同的形式提供。您可以在这里找到各种 Grafana 版本InfluxDB 版本

一旦您启动并运行了 Grafana 和 InfluxDB,请参阅本指南,了解如何 将 InfluxDB 1.8 与 Grafana 集成,以及本文件,了解如何 将 InfluxDB 2.0 与 Grafana 集成。然后加入我们乐于助人的 InfluxDB 社区Slack 提出问题。

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