文档文档

使用 InfluxDB API 查询

InfluxDB v2 API 为与 InfluxDB 的所有交互提供了一个程序化接口。 要查询 InfluxDB 2.7,请执行以下操作之一

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

  • 通过 orgorgID URL 参数指定您的组织。
  • Authorization 标头设置为 Token + 您的 API 令牌。
  • Accept 标头设置为 application/csv
  • Content-type 标头设置为 application/vnd.flux (仅限 Flux) 或 application/json (Flux 或 InfluxQL)。
  • 使用请求的原始数据在 Flux 或 InfluxQL 中查询。

使用 gzip 压缩查询响应

要压缩查询响应,请将 Accept-Encoding 标头设置为 gzip。 这可以节省网络带宽,但会增加服务器端负载。

我们建议仅在大于 1.4 KB 的响应上使用 gzip 压缩。 如果响应小于 1.4 KB,则 gzip 编码始终会返回 1.4 KB 的响应,而与未压缩的响应大小无关。 1500 字节 (~1.4 KB) 是公共网络的最大传输单元 (MTU) 大小,也是网络层允许的最大数据包大小。

Flux - 示例查询请求

以下是向 InfluxDB 2.7 发送 Flux 查询的 curl 请求示例

curl --request POST \
  http://localhost:8086/api/v2/query?orgID=INFLUX_ORG_ID  \
  --header 'Authorization: Token INFLUX_TOKEN' \
  --header 'Accept: application/csv' \
  --header 'Content-type: application/vnd.flux' \
  --data 'from(bucket:"example-bucket")
        |> range(start: -12h)
        |> filter(fn: (r) => r._measurement == "example-measurement")
        |> aggregateWindow(every: 1h, fn: mean)'
curl --request POST \
  http://localhost:8086/api/v2/query?orgID=INFLUX_ORG_ID \
  --header 'Authorization: Token INFLUX_TOKEN' \
  --header 'Accept: application/csv' \
  --header 'Content-type: application/vnd.flux' \
  --header 'Accept-Encoding: gzip' \
  --data 'from(bucket:"example-bucket")
        |> range(start: -12h)
        |> filter(fn: (r) => r._measurement == "example-measurement")
        |> aggregateWindow(every: 1h, fn: mean)'

InfluxQL - 示例查询请求

以下是向 InfluxDB 2.7 发送 InfluxQL 查询的 curl 请求示例

curl --request -G http://localhost:8086/query?orgID=INFLUX_ORG_ID&database=MyDB&retention_policy=MyRP \
  --header 'Authorization: Token INFLUX_TOKEN' \
  --header 'Accept: application/csv' \
  --header 'Content-type: application/json' \
  --data-urlencode "q=SELECT used_percent FROM example-db.example-rp.example-measurement WHERE host=host1"
curl --request -G http://localhost:8086/query?orgID=INFLUX_ORG_ID&database=MyDB&retention_policy=MyRP \
  --header 'Authorization: Token INFLUX_TOKEN' \
  --header 'Accept: application/csv' \
  --header 'Content-type: application/json' \
  --header 'Accept-Encoding: gzip' \
  --data-urlencode "q=SELECT used_percent FROM example-db.example-rp.example-measurement WHERE host=host1"

InfluxDB 以带注释的 CSV 格式返回查询结果。


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。 更快扩展。

获取更新

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

有关更多信息,请查看