Documentation

排除写入数据的问题

了解如何避免在写入InfluxDB Clustered时出现意外结果并从错误中恢复。

处理写入响应

InfluxDB 集群在您发送写入请求时会执行以下操作:

  1. 验证请求。

  2. 如果成功,尝试从请求体中摄取数据;否则,响应一个 错误状态

  3. 接收或拒绝批量中的数据,并返回以下的HTTP状态代码之一:

    • 204 No Content: 批次中的所有数据都已被接收。
    • 400 Bad Request: 某些或全部数据已被拒绝。未被拒绝的数据已被接收并可查询。

响应体包含有关被拒绝的点的错误详情,最多100个点。

写操作是同步的——响应状态指示写操作的最终状态,并且所有接收的数据都是可查询的。

为了确保 InfluxDB 按照您请求的顺序处理写入,发送下一个请求之前请等待响应。

查看HTTP状态码

InfluxDB使用常规HTTP状态码来指示请求的成功或失败。 响应主体的message属性可能包含有关错误的额外详细信息。 写入请求返回以下状态码:

HTTP 响应代码消息描述
204 "Success"如果InfluxDB已接收数据
400 "Bad request"关于被拒绝点的错误详细信息,最多100个点:line包含第一个被拒绝的行,message描述拒绝情况如果某些或所有请求数据不被允许(例如,如果其格式不正确或超出桶的保留期)–响应主体指示是否发生了部分写入或所有数据已被拒绝
401 "Unauthorized"如果Authorization头缺失或格式错误,或者如果token没有permission写入数据库的权限。参见写请求中的使用凭据的示例
404 "未找到"请求的 资源类型 (例如,“组织”或“数据库”),以及 资源名称如果请求的资源(例如,组织或数据库)未找到
500 "内部服务器错误"错误的默认状态
503 “服务不可用”如果服务器暂时无法接受写入。Retry-After 头部描述何时再次尝试写入。

如果您的数据没有写入数据库,请查看如何排查被拒绝的点

故障排除

如果您注意到数据库中缺少数据,请执行以下操作:

  • 检查响应主体中的 message 属性以获取有关错误的详细信息。
  • 如果 message 描述了一个字段错误,排查拒绝的点
  • 验证所有行都包含有效的语法 (line protocol).
  • 验证您数据中的时间戳与请求中的 precision parameter 匹配。
  • 通过 优化写入 来最小化负载大小和网络错误。

排查被拒绝的要点

InfluxDB 拒绝在同一个分区内(默认分区是根据测量和日期)与现有桶数据重叠且具有不同数据类型的现有字段的点。

检查被拒绝数据点与同一数据库和分区内的数据点之间的字段数据类型差异——例如,您是否尝试将string数据写入int字段?



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

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