当前位置: 首页 > article >正文

PDF书籍《手写调用链监控APM系统-Java版》第1章 开篇介绍

一. 前言简介

本人阅读了 Skywalking 的大部分核心代码,也了解了相关的文献,对此深有感悟,特此借助巨人的思想自己手动用JAVA语言实现了一个 “调用链监控APM” 系统。本书采用边讲解实现原理边编写代码的方式,看本书时一定要跟着敲代码。

作者已经将过程写成一部书籍,奈何没有钱发表,如果您知道渠道可以联系本人。一定重谢。

本书涉及到的核心技术与思想

JavaAgent , ByteBuddy,SPI服务,类加载器的命名空间,增强JDK类,kafka,插件思想,切面,链路栈等等。实际上远不止这么多,差不多贯通了整个java体系。

适用人群

自己公司要实现自己的调用链的;写架构的;深入java编程的;阅读Skywalking源码的;

版权

本书是作者呕心沥血亲自编写的代码,不经同意切勿拿出去商用,否则会追究其责任。

二. 书籍目录内容

第1章 开篇介绍

第2章 第一个Agent应用

  • 2.1 创建项目结构
  • 2.2 Agent Jar的制作与打包配置
  • 2.3 测试agent jar
  • 2.4 本章小结

第3章 配置文件系统的建立

  • 3.1 配置文件的加载
  • 3.2 配置文件的测试
  • 3.3 本章小结

第4章 SPI服务模块化系统

  • 4.1 SPI服务架构的建立
  • 4.2 JVMService收集内存,CPU,线程信息
  • 4.3 JVMService 服务的测试
  • 4.4 KafkaProducerManager 服务发送采集数据到后端OAP
  • 4.5 KafkaProducerManager服务测试
  • 4.6 SamplingService采样率控制服务
  • 4.7 SamplingService服务的测试
  • 4.8 服务内部资源的清理
  • 4.9 本章总结

第5章 插桩插件与bytebuddy字节码增强

  • 5.1 插件的初探
  • 5.2 插件的设计与使用
  • 5.3 插桩插件的查找与归档
  • 5.4 插件与bytebuddy结合
  • 5.5 对JDK类的增强实现
  • 5.6 增强JDK类库(增强线程池)测试和出现问题的思考
  • 5.7 本章小结

第6章 链路的架构(Trace+TraceSegment+Span)

  • 6.1 链路的理论知识
  • 6.2 链路TraceSegment,Span的编码实现
  • 6.3 链路上下文
  • 6.4 链路上下文管理器服务
  • 6.6 本章小结

第7章 插件与链路的结合

  • 7.1 Tomcat插件实现与测试
  • 7.2 Gson插件实现与测试
  • 7.3 Mysql插件实现与测试
  • 7.4 SpringBoot环境插件获取应用名
  • 7.5 HttpClient插件实现跨进程传输TraceSegment

三. PDF原版书籍和源码获取

内容我已经完善成PDF了,里面是原版且完成版,还有代码也在里面,不过需要赞助一杯奶茶钱, 原创不易,也请大家理解了,获取地址:

hadluo-smart-apm: 手写调用链监控APM系统-Java版

四. 勘误和支持

由于作者水平和表达能力有限,本书一定存在表述不精确、不准确,甚至不正确的地方。另外,由于时间有限,书中也难免会有一些疏漏之处,还请读者谅解。

五. 致谢

创作该书时,作者处于无工作游离状态,这使得我能专心致志的投入调用链的研究,感谢我的妻子和家人给与支持,在我陷入低谷的时候,叮嘱我继续努力不要放弃。作为一名技术研究者,要有锲而不舍,打破砂锅问到底的精神。研究源码时,先了解其实现原理,抛开细枝末节,然后层层剥开,永不言弃,这样方可水到渠成。


http://www.kler.cn/a/455084.html

相关文章:

  • 前端 学习
  • Alma linux部署gitlab
  • Java 中 List 源码解析:深度剖析与实现
  • 机器学习1-简单神经网络
  • Go主协程如何等其余协程完再操作
  • 废品回收小程序:助力企业转型发展
  • Vue3 +Element-Plus el-select下拉菜单样式(局部生效)
  • vue 中 keep-alive 详解
  • C# 窗体应用程序嵌套web网页,基于谷歌浏览器内核(含源码)
  • 《机器学习》——利用OpenCV库中的KNN算法进行图像识别
  • oracle数据泵expdp/impdp导出导入
  • 【C++第十六课 - C++11】列表初始化、右值引用、移动构造、移动赋值、lambda表达式
  • 大模型笔记!以LLAMA为例,快速入门LLM的推理过程
  • Vue异步处理、异步请求
  • 无人零售 4G 工业无线路由器赋能自助贩卖机高效运营
  • 【基础】卒的遍历(DFS)
  • dockfile 配置 /etc/apt/source.list.d/debian.list 清华镜像
  • 记录一个制作Fortran的docker镜像
  • 【NODE】01-fs和path常用知识点
  • 【量化策略】波动指数-用Python检测范围和趋势市场