pfinder实现原理揭秘

💡 原文中文,约14600字,阅读约需35分钟。
📝

内容提要

本文介绍了京东自研的pfinder应用全链路监控系统的核心原理和架构设计,包括多维监控、自动埋点、应用拓扑、调用链追踪等功能。pfinder使用字节码注入实现增强,解决了跨线程传递traceId的问题。

Q&A

pfinder是什么,它的主要功能有哪些?

pfinder是京东自研的APM系统,主要功能包括调用链追踪、应用拓扑、多维监控、自动埋点和自动故障分析等。

pfinder如何实现字节码增强?

pfinder通过字节码注入技术实现增强,使用多种字节码修改框架如ASM、javassist等,解决了跨线程传递traceId的问题。

pfinder的接入方式是什么?

pfinder无需修改代码,只需在启动文件中增加两行脚本即可接入。

pfinder支持哪些中间件和开源组件?

pfinder支持京东主流中间件如jimdb、jmq、jsf,以及常用开源组件如tomcat、http client、mysql和es等。

pfinder如何解决跨线程传递traceId的问题?

pfinder通过TracingRunnable实现traceId的跨线程传递,确保在使用线程池或@Async时不会丢失traceId。

pfinder的在线热部署功能是如何实现的?

pfinder通过jmtp与服务端交互,允许类搜索、反编译和热更新等功能,从而实现在线热部署。

🏷️

标签

➡️

继续阅读