使用 InfluxDB API 查询
InfluxDB v2 API 提供了一个程序接口,用于与 InfluxDB 进行所有交互。要查询 InfluxDB Cloud,请执行以下操作:
- 向
/api/v2/query端点发送 Flux 查询请求。 - 向/query 1.x 兼容 API发送一个 InfluxQL 查询请求。
在您的请求中,设置以下内容:
- 通过
org或orgIDURL 参数访问您的组织。 - 将
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 - 示例查询请求
下面是一个发送 Flux 查询到 InfluxDB Cloud 的示例 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 - 示例查询请求
以下是一个示例 curl 请求,它向 InfluxDB Cloud 发送一个 InfluxQL 查询:
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。