服务治理 - 记录调用日志 logmiddleware

背景

rpc请求的时候,上游调用下游,希望记录一些通用的日志,比如耗时,调用方名字,被调用方名字,集群名等,如果每个业务代码都自己写一遍调用不同下游的代码,过于繁琐
需要有一个记录调用日志的组件,封装所有上游调用下游的请求

定义

from_method:调用方名字
called:被调用方服务标志
method:被调用方的方法名
to_cluster:被调用方的集群名
rpc_status:调用结果记录,成功还是失败

上游可以根据需要更加细化,比如包含cluster名称,集群环境等

实现

这个框架就不涉及到服务调用,不用读写某个key了

框架上用middleware,切面等方式(我是以py的django框架为基础,其他语言也有自己的框架),该中间件的处理在upstream调用下游的时候

比如upstream在调用downstream的方法methodName的时候,
核心伪代码

st_time=time.time()
info_map["from_method"] = request.get("from_method")
info_map["called"] = request.get("called")
info_map其他赋值 xxx
doRequest(request) //后续Middleware处理
duration = time.time()- st_time
info_map['duration'] = duration
logger.info(info_map)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容