文档文档

排查写入数据的问题

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

处理 writedelete 响应

如果 InfluxDB OSS 成功地将所有请求数据写入 Bucket,InfluxDB 将返回成功(HTTP 204 状态码)。批处理中的第一个被拒绝的点会导致 InfluxDB 拒绝整个批处理,并使用 HTTP 错误状态 响应。

查看 HTTP 状态码

InfluxDB 使用传统的 HTTP 状态码来指示请求的成功或失败。写入请求返回以下状态码

  • 204 成功:所有请求数据已写入 Bucket。
  • 400 错误请求:请求中的 line protocol 数据格式错误。响应正文包含数据中的第一个格式错误的行。所有请求数据都被拒绝,未写入。
  • 401 未授权:可能指示以下情况之一
  • 404 未找到:请求的资源(例如组织或 Bucket)未找到。响应正文包含请求的资源类型,例如“organization”和资源名称。
  • 413 请求实体过大:所有请求数据都被拒绝,未写入。仅当 Go (golang) ioutil.ReadAll() 函数引发错误时,InfluxDB OSS 才会返回此错误。
  • 500 内部服务器错误:错误的默认 HTTP 状态。
  • 503 服务不可用:服务器暂时不可用,无法接受写入。Retry-After 标头描述了何时再次尝试写入。

响应正文的 message 属性可能包含有关错误的更多详细信息。如果您的某些数据未写入 Bucket,请参阅如何 排查被拒绝的点

排查故障

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

  • 检查响应正文中的 message 属性,以获取有关错误的详细信息。
  • 如果 message 描述了字段错误,请 排查被拒绝的点
  • 验证所有行是否包含有效的语法 (line protocolCSV)。
  • 验证时间戳是否与 精度参数 匹配。
  • 通过 优化写入,最大限度地减少有效负载大小和网络错误。

排查被拒绝的点

InfluxDB 由于以下原因拒绝点

  • 批处理包含另一个具有相同序列的点,但其中一个字段具有不同的值类型。
  • Bucket 包含另一个具有相同序列的点,但其中一个字段具有不同的值类型。

检查缺失数据点与具有相同 序列 的其他点之间的 字段类型 差异——例如,您是否尝试将 string 数据写入 int 字段?


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看