python tracer函数_Python如何实现函数调用追踪

本文介绍了使用Python实现函数调用追踪的Recorder和Span类。通过创建Recorder实例,可以记录每个函数调用的开始和结束时间、服务器名、标签等信息。Span类用于存储每个调用的详细信息,包括span ID、服务器名、位置、持续时间等,并提供了设置标签和日志的方法。示例展示了如何连续和并行地调用Recorder来追踪多个函数执行过程。
摘要由CSDN通过智能技术生成

importuuidimportosimporttime

l=[]classRecorder(object):def __init__(self,servername,root_span =None):if root_span ==None:

self.__span =Span(servername)else:

self.__span =Span(servername,root_span)#上下文管理器

def __enter__(self):return self.__span

#退出方法中,用来实现善后处理工作

def __exit__(self, exc_type, exc_val, exc_tb):

self.__span.record()

self.__span.record_save(self.__span.span)classSpan(object):def __init__(self,servername,root_span =None):

self.servername=servername

self.span=self.newspan()if root_span !=None:

root_span.dic['child_span'].append(self.span)

self.span["root_span_flag"] =Falsedefnewspan(self):

self.dic={"spanid": uuid.uuid4().int,"servername": self.servername,"location": "","ip": "","durationtime": 0,"st

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值