背景
有时业务出现莫名其妙的bug,但是不知原因。很多时候我们无法重现当时情景,这时找到bug产生的原因,并想解决它可谓难上加难。怎么办呢?我们可以针对请求添加一个特殊的 “身份证”。
实现思路:
- 采用 中间件 ,在接收到请求的时候,添加一个 request_id(自己生成,要求不重复) ,将其添加到请求的参数里,或者 headers 里。便于在打log的时候,将此request_id添加进log里。
- 记录请求的详细信息,记录进
数据库
或日志
里。我个人记录的信息有:
request_id(自己生成的)
client_id
scheme(http or https)
host
uri
full_url
session
method
params
referer
headers
auth_user_id
created_at
updated_at
主要是为了分析,也为了便于检索。当然这样产生的数据会很多,可能很多是没有必要的,也可以针对自己的目的进行过滤记录。只记录自己需要的一些请求。
说明
目前楼主也在初步尝试中,慢慢的总结经验,再更新本文。如果大家有好的想法,欢迎在评论里阐述,大家相互交流。