140DAI74000
发布时间:2018-10-31 14:10:47点击率:
140DAI74000
深入埋点实现非侵入
与Zipkin不同,PinPoint是一款开源的应用程序性能管理(Application Performance Management)工具,使用字节码增强的方式进行数据源收集,目前只有官方提供的Java Agent探针。字节码增强式埋点方式,提倡代码的非侵入性,不同的编程语言,通过不同的技术在语言运行环境或基础库上植入。对于Java应用,利用字节码增强技术,在启动JVM时通过不同的埋点插件覆盖不同的通信协议、中间件、开发框架,对Java基础调用代码进行函数级埋点。这种埋点方式优势在于能够拿到堆栈级的调用信息与其他更多运行态信息,帮助使用者无需日志等辅助手段即可快速完成问题定位。
PinPoint使用字节码增强技术进行APM数据采集,通过在应用启动时配置java agent探针的方式,主动干预应用代码行为,应用 无需进行代码修改,由PinPoint来决定在哪些API进行数据埋点。相比较PinPoint的字节码增强技术与其他APM系统的代码侵入式埋点来说,字节码增强技术从理论上来说能够在任何地方进行埋点,而类似Brave装备库等侵入式埋点的方式本身依赖中间件的实现方式,其提供的应用层面的 API 还需要框架底层驱动的支持,才能实现拦截。
140DAI74000
PinPoint 在实现之初就考虑到了性能优化,如采用 Thrift 的二进制变长编码格式、使用 UDP 作为传输链路、在传递常量的时候使用数据参考字典、使用异步传输方式等。但任然存在一些性能问题与使用的约束,并且由于字节码增强技术对开发人员有较高的要求,其在扩展性和社区生态方面具有一定的劣势。
华为APM的技术实践 零侵入式的全周期呵护
华为APM结合PinPoint与Zipkin两种典型系统的优点,提供更便捷、更高效、性价比更高的解决方案。
1. 非侵入式数据采集:一键式采集部署,更高效与健壮的数据采集能力
华为APM探针借鉴PinPoint采集探针优势,在采集数据模型、输出组件性能、可靠性等方面进行优化,并统计业界各框架与中间件的使用广泛性基础上,增加插件支持能力。以保证在 小的资源占用下,为用户提供 为有用的性能分析数据。
· 探针自动部署:华为APM支持与华为云容器引擎、云应用编排等服务配合使用,可以在应用部署时通过简单勾选,实现采集探针的自动部署。
140DAI74000



