背景
“日志系统”在项目开发、运维中扮演着非常重要的角色,完善的日志记录可以方便问题的追溯、系统的监控、行为的分析等等。“用户中心”要做的不仅是自身的日志记录,还要对各个子系统进行日志的上传,这样子系统就不需要再去编写日志模块,所有日志都打入用户中心也有利于资源的统一管理监控。
设计
日志需要记录的字段信息很多,正如前一篇所描述的user_id
用户ID, title
操作行为, data
操作数据, ip
来源IP, created_at
操作时间,type
操作类型,sql
操作语句等等。而且有的日志需要依赖具体的业务,这样做一个通用的日志系统考虑的方面就更多了。
字段 | 类型 | 说明 |
---|---|---|
id | bigint | 日志ID |
app_id | int | 应用ID |
user_id | int | 用户ID |
request_method | varchar | 请求方式 |
request_url | varchar | 请求地址 |
request_params | text | 请求参数 |
response_code | int | 返回码 |
response_message | varchar | 返回消息 |
response_data | text | 返回数据 |
user_ip | varchar | 用户IP |
user_client | varchar | 用户客户端类型 |
user_agent | varchar | user agent |
server_ip | varchar | 服务器IP |
request_at | double | 请求时间 |
pushed_at | double | 响应时间 |
poped_at | double | 发送给用户中心时间 |
created_at | double | 用户中心写库时间 |
request_time | timestamp | 请求时间 |
- 1、
request_method
、request_url
、request_params
、response_code
、response_message
、response_data
为请求和返回的一些信息; - 2、
user_id
、user_ip
、user_client
、user_agent
为用户的一些信息; - 3、
request_at
、pushed_at
、poped_at
、created_at
为时间节点信息:request_at
、pushed_at
之间的差值为服务器从接收到返回之间的处理时间,如果时间较长的话则需要分析对应的代码逻辑、执行效率;pushed_at
、poped_at
之间的差值为日志队列里的等待时间,如果时间较长表明队列中的任务较多,并不影响业务;poped_at
、created_at
之间的差值为“用户中心”写入日志的时间,如果时间较长则表明“用户中心”处理过慢;
实现
api
发送给“用户中心”需要携带access_token,通过创建应用时的client_id、client_secret获取。具体api参见开放平台8.1 记录日志
显示
字段较多,列表只显示部分,点击“详细”查看全部