文档文档

执行 Flux 查询

此页面记录了早期版本的 InfluxDB OSS。InfluxDB OSS v2 是最新的稳定版本。 请参阅等效的 InfluxDB v2 文档: 执行查询

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

  1. Chronograf 的数据浏览器
  2. Influx CLI
  3. InfluxDB API

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

Chronograf 的数据浏览器

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

Influx CLI

要使用 InfluxDB 1.8+ 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 查询也可以使用 influx CLI 的 -type=flux 选项和 -execute 参数作为参数传递给 Flux REPL。随附的字符串将作为 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>

这允许您以纯文本形式 POST 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 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看