本人阅读了 Skywalking 的大部分核心代码,也了解了相关的文献,对此深有感悟,特此借助巨人的思想自己手动用JAVA语言实现了一个 “调用链监控APM” 系统。本书采用边讲解实现原理边编写代码的方式,看本书时一定要跟着敲代码。
作者已经将过程写成一部书籍,奈何没有钱发表,如果您知道渠道可以联系本人。一定重谢。
本书涉及到的核心技术与思想
JavaAgent , ByteBuddy,SPI服务,类加载器的命名空间,增强JDK类,kafka,插件思想,切面,链路栈等等。实际上远不止这么多,差不多贯通了整个java体系。
适用人群
自己公司要实现自己的调用链的;写架构的;深入java编程的;阅读Skywalking源码的;
版权
本书是作者呕心沥血亲自编写的代码,不经同意切勿拿出去商用,否则会追究其责任。
原版PDF+源码请见:
本章涉及到的工具类也在这里面:
PDF书籍《手写调用链监控APM系统-Java版》第1章 开篇介绍-CSDN博客
第12章 结束
本书到这里就结束了,我们回顾下讲解到的内容,首先通过java agent技术作为入口,初始化了配置文件系统,插件系统,butybuddy,服务系统等, 每个系统都有自己重要的功能部分,通过相互协作完成了调用链的采集到上报。最后还实现了具体的业务插件,这些都是典型的插件实例,包括了三种span类型,jdk类库增强以及跨进程传输TraceSegment信息,差不多涵盖了调用链的各种情景分支了。
本书理论上还要实现kafka消费者,然后将数据清洗,分组存储到elasticsearch,clickhouse等,然后通过一个好的前端插件进行查询展示,这样就是一个完整的调用链系统。由于作者时间精力有限,考虑到本书是否畅销等因素就不在本书写这方面的内容了,也感谢大家理解。
最后,由于作者认知有限,书中有任何错误地方,麻烦热心读者更正指出,本人万分感谢!联系信息已在文章开头指出。
本书涉及到的全部工具类,会在本书的配套源码上给出。祝大家能学到知识。