TiDB 产品需求讨论 - ERROR CODE 标准化

TiDB 的产品打磨离不开社区用户的参与,我们在优化和完善 TiDB 产品的同时,非常尊重大家的线上的使用习惯和 DBA 运维规范。最近我们准备在 v4.0 版本开始改善 ERRO CODE 和 ERROR MESSAGE 输出形式,完善报错的标准化输出,会将 TiDB/TiKV/PD/Tools/RB 的 LOG 输出做一些调整,本次需求讨论活动想要了解一下现在大家对 LOG 使用的一些看法,如果调整 ERROR LOG 对于上线业务、运维平台开发会有哪些在风险。

ERROR CODE 调整主要分成几个方面,详情可以看下方链接:

  • TiDB client 和 TiDB server 之间的协议遵循 MySQL 规范,不做改动;著名报错代码不会变动(例如:8005、9005)
  • 本次变动主要是 error code 和 message 的变动,会增加规范的 error code 信息;
    • 所有组件都会增加 ERROR CODE;

BR:Internal:FileNotFound

KV:Region:EpochNotMatch

KV:Region:NotLeader

  • ERROR LOG 会有变化,error message 格式调整为[ErrorCode] message;

[2020/07/17 18:38:06.461 +08:00] [ERROR] [import.go:259] ["failed to download file"] [error="[BR:Internal:DownloadFileFailed] failed to download foo.sst : File not found"] [errVerbose="..."]

具体研发设计文档可以看一下 Github Link:https://github.com/pingcap/tidb/blob/master/docs/design/2020-05-08-standardize-error-codes-and-messages.md

欢迎大家在评论区一起讨论,讨论周期会在一周结束(2020-07-24 ~ 2020-07-31)。

1 个赞