文档文档

使用 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 开源版本现已发布 Public Alpha 版

InfluxDB 3 开源版本现已可用于 alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 alpha 版本的一部分。

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

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