Webserver Tracing

OpenTracing

OpenTracing提供了一个开放的,与供应商无关的标准API。OpenTracing标准中有三个重要的相互关联的类型,分别是Tracer, SpanSpanContext。每个行为都会在各语言实现层面上,会演变成一个方法 。 由于方法的重载,不同的语言针对可选参数有不同理解,概念和实现方式 。下面以Python为例

Tracer

创建Span,并且可以跨进程Inject(序列化) 和 Extract (反序列化)其元数据

初始化Tracer

Span

工作流的一部分,一种命名的、定时的操作 。Span接受key:value标签以及附加到特定Span实例的细粒度、带时间戳的结构化日志


新建span
UI视图

Span Contenxt

Span上下文信息,携带分布式事务的跟踪信息,包含Trace标识符、SPAN标识符以及其他数据


inject示例

extract示例

cProfile/pstats

cprofile

基于lsprof的用C语言实现的扩展应用,运行开销比较合理,适合分析运行时间较长的程序,只测量CPU时间,不监视内存消耗


使用

运行结果

pstats

用来分析cProfile输出的文件内容


使用

运行结果

性能优化

项目:phm数据同步
问题:数据量大,且数据计算量过多,导致同步时间较大
优化:使用接口同步当日改变的用户信息,对于计算型数据定时分批启用多线程异步计算
效果:同步时间缩短至1h以内,且主要数据可以实时监控

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容