一、为什么做错误码
随着3D云设计工具的发展,用户可通过云设计工具,进行家居、公装、建筑、地产等全空间领域的云设计。目前,群核科技(酷家乐)广泛应用于企业的设计、营销、管理等解决方案中,用以提升企业的效能。在3D云设计工具的功能不断丰富和完善中,整个设计系统涉及到的业务线和功能模块越来越多。以云设计工具4.0为例,其中包含较多的设计工具,如硬装、定制和BIM等。对于工具的线上问题反馈,存在线上问题定位难、排查效率低和信息不全等问题,导致用户线上问题解决链路长、时效性低,运营和业务支撑侧人力资源成本高,产研侧问题定位和排查成本高等问题。思考:是否可在用户出现线上问题时,给与一定的错误提示来引导和解决问题?二、错误码是什么
在用户遇到业务异常时,系统提供相应的“错误码”,给与帮助和引导问题解决,进行问题的快速定位。三、错误码应用价值
| 客服系统:一键获取帮助、FAQ快速解答、客诉精准分类| 解忧杂货铺、业务急救箱:一键搜索信息、问题快速定位| 管理中心:问题快速定位(描述、敏捷组和FAQ)3.1 故障定位快 客户不焦虑 大家不抓瞎
3.2 接入简单 基建完善 管理方便
错误码提供了完善的基建支持能力,可以让业务方高效接入、管理和维护。 | |
---|
| 格式定义,后端接口返回格式和错误消息对接多语言中台 |
| |
| |
| 错误码增删改查、占位符查询、一键自动机翻、自动筛查补充错误码、内外网自动同步 无业务方维护工作量 |
| 业务方无需自行开发业务监控,0成本支持监控警报,节约1人日资源 |
| |
| 提供错误码业务监控大盘的线上巡检能力,融入迭代并形成闭环- 巡检的错误码:如0001,0002(可多次批量加入)
|
四、如何设计和实现
4.1 系统架构和流程
整体系统结构主要由错误码统一协议规范、基建配置、错误码管理中心、前后端业务、以及错误码工具包和前端解析插件组成,如下图所示。
错误码统一协议规范:提供错误码的统一格式、接口返回和消息获取方式。基建配置为错误码提供相应的基建服务,和各个基建打通,主要包含:服务资源管理中心、分布式配置中心和监控警报组成。错误码管理中心:错误码管理、FAQ管理、数据统计和线上巡检。为了业务前后端能高效接入和应用,提供了错误码工具包和前端解析插件,方便业务线进行快速接入。 服务资源管理中心用以管理3D云设计软件的所有服务资源。- 新申请的服务,先从服务资源管理中心申请服务资源,生成服务标识;
- 对于服务资源管理中心的已有服务,在前置工作中,已生成服务标识;
(2)错误码管理中心定时同步服务资源管理中心的服务资源情况,并自动计算错误码服务唯一标识;(3)错误码管理中心推送错误码服务唯一标识到分布式配置中心- 已存在的服务:错误码管理中心一次性推送所有云设计服务的错误码唯一标识到分布式配置
- 新创建的服务:创建服务时,错误码管理中心获取该服务的错误码唯一标识,自动推动到分布式配置中心,并将这唯一标识记录到该服务的对应的分布式配置页面中。
(4)云设计后端服务调用中间件提供错误码工具包中,获取完整的错误码和错误描述。在业务后端内部调用异常时,返回错误消息体。(5)错误码信息上报监控(监控支持)
监控支持错误码标准数据格式搜集:错误码、描述、服务和接口等,支持自定义警报支持和特定错误码筛选和统计。(6)错误码管理中心定时同步监控数据,更新错误码信息,如错误码、描述、接口和服务等。4.2 协议规范
后端采用中心化配置管理数据库中的服务树来对后端服务做区分,统一格式如下表所示:
错误码 ERROR CODE |
大部门归属 | 业务线 | 服务 | 保留位 | 错误类型 | 错误码数据域 |
| | | | | |
| | | | | |
(1)大部门归属(Owner Team):大部门归属标识(4)保留位(SER/CLUSTER):保留拓展位(5)错误类型(TYPE):后端错误码、前端错误码和反馈等(6)错误码数据域(ErrorData):用以标识业务错误码,如001表示工具CAD解析异常。以工具下某服务为例,根据配置管理数据库中的服务树上的标签和数据域,可如下表示:
注:5 2 0 0 0 0 0 1 表示工具CAD解析异常{
"c":"0",
"m":"错误消息",
"d":"结果"
}
后端服务的消费方来源于业务前端和其他业务后端。业务前端通过http调用直接请求业务后端,后端服务之间通过rpc接口相互调用,为了做到对接的统一(一个业务前端对接多个业务后端,一个后端服务也会对接多个其它后端服务,同时存在一个后端服务透传依赖方后端服务返回数据的情况),需要定义统一的接口数据返回格式。同时为了区分业务异常与系统异常(网关超时,网关不通,限流熔断,网络错误等),经过业务处理的所有请求返回HTTP Status Code都为200,具体的业务异常和业务错误信息体现在上述返回数据结构的”c“ code字段以及 ”m“ message字段。对于系统异常,因为没有经过业务后端处理,所以请求返回HTTP Status Code为实际的错误码,比如网关超时返回503,网关不通返回404等。1.用户进行方案设计时,业务前端向业务后端发起请求。2.当出现内部调用异常时,根据前端请求的请求头和错误码,返回相应的错误消息体;5.用户到相应的帮助中心,如客服系统、微信程序获取相应的帮助;4.3 管理中心
考虑到区分错误码占位表后,由各业务线自己错误码数据域的管理和协调,可能出现管理和协调困难、以及人工维护带来的线上错误码和管理中心不一致等问题,增加维护成本。为解决错误码占位符和数据域的管理协调问题、错误码和管理中心的维护问题,采用错误码管理中心进行规范科学的错误码管理中心,主要分成:
4.4 基建支持和高效接入
4.4.1 监控警报
- 错误码区间次数: 以5min时间粒度统计区间新增错误码数量
- 个性化报警:支持特定错误码,过滤某些错误码的警报设置
- 在分布式调用链追踪框架进行埋点,使得调用链中拥有错误码code,标识字段已完成;
- 错误码中间件工具包统一打印错误日志,用于监控警报和统计,例如:ANALYZE {"_uniqueId":"00000112-5629-462c-465d-d1fbb1890001","code":"0000 0001","message":"方案错误","behaviorDescription":"ecodeException"}
监控大盘:
每周发现错误码异常 18K个,可有效应用于业务监控大盘。4.4.2 错误码工具包和前端解析插件
由各个业务方自己接入错误码,存在重复代码和工作量冗余,为方便接入,提升接入效率。对错误码的返回结构进行封装,具有通用的识别和解析能力。获得结果:抛出异常被全局异常处理器捕获,结果格式符合webstandard标准为解决业务线工具在接入错误码后,业务前端可正常解析错误码返回,统一各业务方前端统一解析插件,减少接入成本。- 返回错误码时,中间件增加header,如x-code: 0000 0001
- 前端根据header来判断哪些是错误码返回,将数据解析后返回给业务前端,进行业务逻辑处理
4.4 效能提升
4.4.1 提高客诉分析人效
4.4.2 线上巡检
为了更好的感知线上情况,提供错误码业务监控大盘的线上巡检能力,融入迭代并形成闭环。
五、规划和展望
目前工具业务线已应用于硬装、定制、水电等业务线中,完成错误码一期接入,形成了用户、客服和技术团队的闭环链路。由于业务线排期紧张,当前覆盖场景不全面,后期将提升工具的场景覆盖度,覆盖用户高频操作场景。现有工单系统中,通过已增加的错误码字段,可以更直观准确地描述用户反馈信息。而由于当前工单当前依赖人为创建,存在人效低的不足。后期规划通过错误码设置,自动创建错误码工单,减少人为工单依赖。同时在工单自动获取错误码对应信息,如描述、处理和解决方案等信息,提高人效。 1. 3D云设计工具的前端性能自动化及核心问题分析解决
2. 多语言检测工具实践
3. 网页巡检工具实践
公众号:酷家乐技术质量 知乎:酷家乐技术质量
TesterHome:kujiale-qa (酷家乐质量效能)