Documentation

使用InfluxDB v2 API与InfluxDB Cloud无服务器

InfluxDB Cloud Serverless与InfluxDB v2 API /api/v2/write端点以及现有的InfluxDB 2.x工具和代码兼容。对于新的写入工作负载和您带到InfluxDB Cloud Serverless的现有v2写入工作负载,请使用InfluxDB v2 API。

InfluxDB v2 API 端点将无法用于管理资源或查询 InfluxDB Cloud Serverless 中的数据。 要查询数据,使用 Flight+gRPC 协议或 InfluxDB v1 /query HTTP API 端点和 相关工具

认证 API 请求

InfluxDB API 端点要求每个请求都要通过 API token 进行认证。

使用令牌进行身份验证

使用 Authorization: Token 方案传递一个具有操作所需权限的 API token

在 InfluxDB 2.x API 中使用 Token 方案。

语法

Authorization: Token API_TOKEN

示例

使用 Token 来验证写请求:

# Use the Token authentication scheme with /api/v2/write
curl --request post "https://cloud2.influxdata.com/api/v2/write?bucket=
BUCKET_NAME
&precision=s"
\
--header "Authorization: Token
API_TOKEN
"
\
--data-binary 'home,room=kitchen temp=72 1463683075'

替换以下内容:

  • BUCKET_NAME: 您的 InfluxDB Cloud Serverless bucket
  • API_TOKEN: 一个具有足够权限的API令牌,用于指定的存储桶

响应

InfluxDB HTTP API 响应使用标准 HTTP 状态码部分写入 和错误的响应体包含一个 JSON 对象,其中有 codemessage 属性来描述错误。响应体消息可能在 InfluxDB Cloud Serverless v1 API、v2 API、InfluxDB Cloud 和 InfluxDB OSS 之间有所不同。

错误示例

  • 缺失的桶值

    400 Bad Request
    
    { "code": "invalid",
      "message":"missing bucket value"
    }
    

    请求中缺少 ?bucket= 参数值。 提供 bucket 名称。

  • 反序列化 org/bucket/precision 失败

    400 Bad Request
    
    { "code": "invalid",
      "message":"failed to deserialize org/bucket/precision in request: unknown variant `u`, expected one of `s`, `ms`, `us`, `ns`"
    }
    

    参数?precision=包含一个未知值。
    提供一个时间戳精度

写入数据

使用 InfluxDB v2 API /api/v2/write 端点进行新的写入工作负载和现有的 v2 工作负载。

POST https://cloud2.influxdata.com/api/v2/write

/api/v2/write 参数

对于 InfluxDB Cloud Serverless v2 API /api/v2/write 请求,请设置以下表中列出的参数:

参数允许在被忽略
org查询字符串已忽略非零长度字符串(已忽略,但不能是空的)
组织ID查询字符串被忽略不适用
*查询字符串已荣幸数据库名称
精度查询字符串荣誉时间戳精度
接受头部尊重用户定义
Authorization *头部已尊重Token API_TOKEN
Content-Encoding头部被尊重gzip(压缩数据)或identity(未压缩)
内容长度头部尊重的用户定义的
内容类型头部忽略不适用(仅支持行协议)
Zap-Trace-Span头部被忽略
* = Required

时间戳精度

在v2 API /api/v2/write 请求中使用以下precision值:

  • ns: 纳秒
  • us: 微秒
  • ms: 毫秒
  • s: 秒
  • m: 分钟
  • h: 小时

用于写入v2 API的工具

以下工具可以与 InfluxDB Cloud Serverless /api/v2/write 端点一起使用:

Telegraf

查看如何 配置 Telegraf 以写入 InfluxDB Cloud Serverless。

交互式客户端

要从命令行交互式测试 InfluxDB v2 API 写入,请使用 influx3 数据 CLI 或常见的 HTTP 客户端,如 cURL 和 Postman。

要设置并开始使用交互式客户端,请参阅入门教程。

客户端库

InfluxDB v3 客户端库v2 客户端库 可以将数据写入 InfluxDB v2 API /api/v2/write 端点。客户端库是特定语言的包,它们将 InfluxDB API 与您的应用集成。

要设置并开始使用客户端库,请参阅入门教程。

查询数据

InfluxDB 3 提供以下协议用于执行查询:

  • Flight+gRPC 请求,其中包含一个 SQL 或 InfluxQL 查询。要了解如何使用 Flight 和 SQL 查询 InfluxDB Cloud Serverless,请参阅 入门 教程。
  • 包含 InfluxQL 查询的 InfluxDB v1 API /query 请求。

执行查询的工具

InfluxDB Cloud Serverless 支持多种不同的工具来查询数据,包括:

避免使用 /api/v2/query

避免在 InfluxDB Cloud Serverless 及相关工具中使用 /api/v2/query API 端点,例如 influx query CLI 命令和 InfluxDB v2 客户端库。您无法在这些工具中使用 SQL 或 InfluxQL。



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 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

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

InfluxDB 云端无服务器