Documentation

执行 Flux 查询

有多种方法可以使用InfluxDB Enterprise和Chronograf v1.8+执行Flux查询。 本指南涵盖了不同的选项:

  1. Chronograf的数据探索器
  2. 时序数据库命令行界面
  3. InfluxDB API

在尝试这些方法之前,请确保通过在您的 InfluxDB 配置文件的 [http] 部分中设置 flux-enabled = true 来启用 Flux。

Chronograf的数据探索器

Chronograf v1.8+ 支持在其数据探索器中使用 Flux。可以在 Chronograf 用户界面内构建、执行和可视化 Flux 查询。

Influx CLI

要使用 InfluxDB Enterprise 1.10+ 的 influx CLI 启动一个交互式 Flux 读评打印循环 (REPL),请运行带有以下标志的 influx 命令:

  • -type=flux
  • -path-prefix=/api/v2/query

如果 启用身份验证 在您的 InfluxDB 实例上,使用 -username 标志来提供您的 InfluxDB 用户名和 -password 标志来提供您的密码。

输入交互式Flux REPL
influx -type=flux -path-prefix=/api/v2/query
influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd

任何 Flux 查询都可以在 REPL 中执行。

通过参数提交Flux查询

Flux 查询也可以作为参数传递给 Flux REPL,使用 influx CLI 的 -type=flux 选项和 -execute 参数。 附带的字符串作为 Flux 查询执行,结果将在您的终端中输出。

influx -type=flux \
  -path-prefix=/api/v2/query \
  -execute '<flux query>'
influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd \
  -execute '<flux query>'

通过STDIN提交Flux查询

Flux 查询可以通过 STDIN 被传入 influx CLI。查询结果将输出到您的终端。

echo '<flux query>' | influx -type=flux -path-prefix=/api/v2/query
echo '<flux query>' | influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd

InfluxDB API

Flux 可以通过 InfluxDB 的 /api/v2/query 端点查询 InfluxDB。查询的数据以注释的 CSV 格式返回。

在您的请求中,设置以下内容:

  • Accept头部设置为application/csv
  • Content-type 头部设为 application/vnd.flux
  • 如果 认证已启用 在您的 InfluxDB 实例上,Authorization 头为 Token <username>:<password>

这允许您以纯文本形式发送Flux查询并接收注释过的CSV响应。

以下是一个使用 Flux 查询 InfluxDB 的示例 curl 命令:

curl -XPOST localhost:8086/api/v2/query -sS \
  -H 'Accept:application/csv' \
  -H 'Content-type:application/vnd.flux' \
  -d 'from(bucket:"telegraf")
          |> range(start:-5m)
          |> filter(fn:(r) => r._measurement == "cpu")'
curl -XPOST localhost:8086/api/v2/query -sS \
  -H 'Accept:application/csv' \
  -H 'Content-type:application/vnd.flux' \
  -H 'Authorization: Token <username>:<password>' \
  -d 'from(bucket:"telegraf")
          |> range(start:-5m)
          |> filter(fn:(r) => r._measurement == "cpu")'


Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: