通用组件系统设计之日志系统.docx

上传人:b****8 文档编号:12894166 上传时间:2023-06-09 格式:DOCX 页数:11 大小:307.89KB
下载 相关 举报
通用组件系统设计之日志系统.docx_第1页
第1页 / 共11页
通用组件系统设计之日志系统.docx_第2页
第2页 / 共11页
通用组件系统设计之日志系统.docx_第3页
第3页 / 共11页
通用组件系统设计之日志系统.docx_第4页
第4页 / 共11页
通用组件系统设计之日志系统.docx_第5页
第5页 / 共11页
通用组件系统设计之日志系统.docx_第6页
第6页 / 共11页
通用组件系统设计之日志系统.docx_第7页
第7页 / 共11页
通用组件系统设计之日志系统.docx_第8页
第8页 / 共11页
通用组件系统设计之日志系统.docx_第9页
第9页 / 共11页
通用组件系统设计之日志系统.docx_第10页
第10页 / 共11页
通用组件系统设计之日志系统.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

通用组件系统设计之日志系统.docx

《通用组件系统设计之日志系统.docx》由会员分享,可在线阅读,更多相关《通用组件系统设计之日志系统.docx(11页珍藏版)》请在冰点文库上搜索。

通用组件系统设计之日志系统.docx

通用组件系统设计之日志系统

通用组件系统设计之日志系统

 

1.文档历史

日期

作者

备注

2017-10-14

阳荣安

创建

2017-10-17

高勇

增加系统概述一节

2.系统概述

针对目前从运维侧看到的一些问题(文件过大,打印信息缺乏标准),希望对日志系统进行规范。

提供统一的API,定义一定的规则,并为有效支撑后续日志系统的发展提供支撑。

1.

2.

2.1.功能定义

日志的主要作用是用来还原现场,协助我们分析问题,帮助重现历史。

在日常具体工作中,用得最多的是协助我们直接定义问题的系统维护类日志,以及用来统计分析系统的运行状态的数据上报类日志。

我们的日志未来也要具备这类能力。

2.1.1.系统维护类日志

系统维护类日志界别的分类如下。

编号

级别

描述

1

DEBUG

调试应用程序使用

2

INFO

突出强调关键动作

3

WARN

出现了预知的错误

4

ERROR

出现不期望的故障,还能hold住

5

FATAL

严重问题,搞不定了

为了辅助我们回溯相关问题,考虑到多个模块、多机器、多进程、多线程的问题,对日志进行区分,并设定一些参考格式,便于日志检索,如下供开发人员参考。

编号

内容

备注

1

日志级别

DEBUG

2

日期时间

20171017-155600-123

3

机器节点

192.168.0.1

4

模块名

ORDER

5

文件名

Main.cpp

6

文件行号

12

7

进程号

123

8

线程号

11

9

日志消息体

灵活定义,建议控制大小在一定范围内

2.1.2.数据上报类日志

数据上报类日志严格遵从制定的格式,便于分析汇总。

如下是以调用者身份上报被调用服务使用状态的日志格式。

每一项之间用|分割,供参考。

编号

内容

例子

1

版本

1

2

日期时间

1508227752

3

调用方ID

CGI

4

调用方所在节点ID

WX1

5

被调方ID

ORDERSVR

6

被调方节点ID

LG1

7

服务与方法ID

Create

8

返回码

0

9

耗时

10ms

2.2.性能定义

后端日志应该统一规范,通过API达成共识,并实现易用性。

并发保持不交叉,写入能力应该发挥系统能力,并不再并发时降低。

日志的格式应该统一。

验收办法,如下表:

编号

并发

用例场景

完成时长(ms)

检查

1

1线程

单线程打印1000万行日志

2

10线程

每线程打印100万行日志

3

10进程

每进程打印100万行日志

4

100线程

每线程打印10万行日志

5

100进程

每线程打印10万行日志

2.3.系统设计

日志整体如下图,

编号

模块

职责

1

日志API

按统一规范打印日志,确保单台节点并发不乱,性能高

2

系统维护日志

应用借助日志API输出的日志文件,用于系统维护

3

数据上报日志

应用借助日志API输出的日志文件,用于数据上报

4

日志AGENT

在单台节点上,处理并上报结果到队列

1.对数据上报日志进行汇总处理,并形成结果

2.对系统维护日志践行检查预处理,并形成结果

5

日志收集队列

Kafuka,用来汇总分散的日志

6

日志分析服务器

从队列获取单节点日志结果,形成最终日志结果,输出到日志仓库

7

日志仓库

按制定格式存放日志,并建立索引

8

模块间调用门户

呈现模块健康状态,供管理参考

9

集中日志呈现门户

集中检索日志,供定位分析问题

 

2.4.门户UI参考

2.4.1.集中日志呈现门户

输入日志文件名,或者模块名,日期范围,给出所有日志列表。

2.4.2.模块间调用门户

用来描述系统间调用健康状态,同样也可以用来表达掉级的

2.4.2.1.查询指定服务间调用情况

2.4.2.2.查看调用者依赖的被调使用情况

2.4.2.3.查看按返回码和服务节点分布的情况

2.4.2.4.系统调用关系图

 

3.建设范围

编号

内容

备注

1

一期

搞定日志API,解决系统维护日志的输出问题

4.系统设计

日志库功能设计要点

1.日志通用组件满足的需求。

1.C++和PHP统一日志目录和格式规范。

2.依据IP/服务名称/上下文编号,聚合和追溯日志。

3.记录服务接口,请求返回数据,正确性,响应时间等信息。

4.记录调用方,请求返回数据,正确性,响应时间等信息。

2.日志库的未来架构图。

1.规划设计图

3.日志库概要设计。

1.日志级别

1.所有级别的日志输出到同一个日志文件中;

2.DEBUG(开发人员调试日志)/INFO(业务流程日志)/WARN(警告信息日志)/ERROR(系统错误日志);

3.ERROR级别日志,属于严重错误,需要开发人员及时处理,反映系统服务质量和稳定性的重要指标;

2.定义通用返回码

3.接口调用方日志记录

1.log_client_req(客户端请求接口数据)

2.log_client_rsp(客户端请求后返回数据)

4.接口服务方日志记录

1.log_server_req(服务端接收请求数据)

2.log_server_rsp(服务端返回请求数据)

4.开发阶段分解和本期实现内容。

1.日志基础组件库开发(C++\PHP统一调用)(一期,本期实现)

2.日志分析上报和聚合(统一查询多台服务器日志,区分IP/hostname)(二期)

3.日志分析统计运行质量(接口调用次数,正确率,响应时间等)(三期)

日志库目录结构设计

∙自动读取etc目录下的所有xml配置文件,xml文件以业务系统模块划分,新增的xml文件,在重启服务后,可以自动生成写日志文件。

∙xml配置文件起到,服务日志先注册后使用。

∙日志文件采用,日期自动更换回滚的写入方式。

接口通用返回码

返回码类型

返回码编码

返回码说明

成功

0

调用成功

请求方错误

1xxx

请求方错误

1001

请求参数字段缺失

1002

请求参数字段类型错误

1003

请求参数字段为空

1004

请求接口未找到

1005

请求接口报文格式解析错误

1006

请求接口版本号错误

1007

请求接口报文头字段错误

11xx

业务处理错误码

返回方错误

2xxx

返回方错误

2001

请求接口超时

2002

请求接口无响应

21xx

业务处理错误码

日志基础库开发方式:

C++和log4cplus开发,PHP扩展库,生成C++和PHP的so库文件。

 

感谢下载!

 

欢迎您的下载,资料仅供参考

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2