(1)本书由SkyWalking项目创始人以及核心开发团队撰写,官方作品,非常不错性和技术性毋庸置疑。(2)本书得到了华为开源能力中心技术专家姜宁、百度开源技术委员会负责人谭中意、Tetrate.io创始工程师周礼赞、京东数科数字技术中心架构专家/Apache ShardingSphere项目VP&创始人张亮、蚂蚁金服云原生布道师宋净超等5位专家联袂推荐。(3)从功能使用、项目设计、核心模块、工作原理、扩展实践5个维度全面讲解SkyWalking。
内容介绍这是一本从功能使用、项目设计、核心模块、工作原理、扩展实践5个维度全面讲解SkyWalking的著作。由SkyWalking的创始人和核心开发团队撰写,得到了来自华为、百度、蚂蚁金服、京东数科、Tetrate.io的5位资深技术专家的联袂推荐。本书共14章,在逻辑上分为4个部分:部分 SkyWalking入门(~3章) 详细介绍了SkyWalking的推荐常识、架构设计、安装与配置,以及它在单体应用架构和微服务架构中的实战操作,能帮助读者快速上手;第二部分 SkyWalking理论(第4~5章) 作为监控软件,SkyWalking需要考虑如何使自身对应用的影响很小化,以及如何实现分布式追踪和监控,这两章对此做了详细的技术分析。内存无堵塞队列是减小系统负载的关键,而集中分布式追踪模型是SkyWalking监控分析的灵魂。第三部分 SkyWalking原理(第6~12章) SkyWalking后端的OAP平台具有极强的模块化和扩展能力,本篇深入讲解了总体的模块化设计,以及OAL分析、集群和存储这三个很核心模块。此外,还介绍了探针插件开发和MQ通信模式扩展这两个热门主题。第四部分 SkyWalking趋势(3~14章) SkyWalking虽然是以分布式探针为基础的分布式追踪工具,但深耕于整个APM领域。本部分从Service Mesh和基于语言探针性能剖析这两大方向,展现了SkyWalking在云原生领域更大的集成能力和运用范围。
吴晟 Tetrate.io创始工程师、前华为云技术专家,专注于云原生、分布式系统监控和Service Mesh领域的技术发展。Apache基金会会员,Apache SkyWalking创始人、项目VP和PMC成员,Apache孵化器PMC成员,Apache ShardingSphere PMC成员,Apache APISIX PMC成员,Apache ECharts (incubating)和Apache DolphinScheduler (incubating)孵化器导师,Zipkin成员和贡献者,CNCF OpenTracing核心维护者。高洪涛 Tetrate.io创始工程师、前华为云技术专家、前当当网系统架构师,拥有丰富的云原生产品设计、研发与实施经验,对分布式数据库、容器调度、微服务、Service Mesh等技术有深入了解。目前为Apache ShardingSphere和Apache SkyWalking核心贡献者,参与项目在软件开发云上的商业化进程,还曾参与Elastic-Job等知名开源项目,拥有丰富的开源项目管理、推广和社区运营经验。赵禹光 Apache SkyWalking PMC成员、Alibaba Sentinel Committer,专注于分布式系统监控、分布式服务的流量控制和分布式作业调度领域的技术发展。贝壳找房软件工程师,贝壳找房开源作业调度平台作者。曹奕雄 Apache SkyWalking PMC成员、专注于分布式系统监控、RPC等领域的技术发展。曾就职于贝壳找房,现就职于猿辅导。李璨Apache SkyWalking PMC成员,对分布式系统监控与微服务的开发和设计有深刻理解,在Kubernetes、云原生和Service Mesh的落地实践方面拥有丰富经验。
前 言章 全面认识Apache SkyWalking 11.1 SkyWalking介绍 11.1.1 什么是SkyWalking 11.1.2 SkyWalking的发展历程 21.1.3 SkyWalking的适用场景 31.1.4 SkyWalking的社区与生态 51.2 SkyWalking的架构设计 61.2.1 面向协议设计 71.2.2 模块化设计 81.2.3 轻量化设计 91.3 SkyWalking的优势 91.3.1 传统分布式架构与云原生的一致性支持 101.3.2 易于维护 101.3.3 高性能 111.3.4 利于二次开发和集成 111.4 SkyWalking开发必备知识介绍 111.4.1 JavaAgent介绍 121.4.2 远程调试介绍 181.4.3 Service Mesh介绍 191.5 本章小结 21第2章 SkyWalking安装与配置 222.1 项目编译与工程结构 222.1.1 项目编译 222.1.2 工程结构 242.2 JavaAgent安装 272.2.1 安装方法 272.2.2 配置参数 292.2.3 插件介绍 302.2.4 不错特性 362.3 后端与UI部署 432.3.1 SkyWalking部署介绍 432.3.2 快速启动 452.3.3 application.yaml详解 462.3.4 参数复写 512.3.5 IP和端口设置 512.3.6 集群管理配置 522.3.7 Kubernetes部署 562.3.8 后端存储 582.3.9 设置服务端采样率 622.3.10 告警设置 632.3.11 Exporter设置 662.3.12 UI部署详解 662.4 UI介绍 672.4.1 Dashboard介绍 672.4.2 拓扑介绍 692.4.3 Trace视图 702.5 本章小结 71第3章 Apache SkyWalking实战 723.1 SkyWalking与单体应用架构 723.1.1 什么是单体应用架构 723.1.2 单体应用架构的优缺点 743.1.3 SkyWalking对单体应用架构的适用性 743.2 SkyWalking与微服务架构 753.2.1 远程过程调用 773.2.2 外部服务 783.3 实战环境搭建 793.3.1 SkyWalking后台搭建 793.3.2 实战集群搭建 803.4 实战操作 823.4.1 观察微服务中的各个维度 823.4.2 观察指标 833.4.3 观察系统架构 853.4.4 提取关键路径 903.4.5 查找失败服务或请求 933.4.6 查找慢服务或请求 963.4.7 处理告警 1013.5 本章小结 105第4章 轻量级队列内核 1064.1 什么是轻量级队列内核 1064.1.1 Buffer 1064.1.2 Channel 1074.1.3 DataCarrier 1084.2 生产者—消费者如何协同 1084.2.1 生产消息 1084.2.2 消费消息 1114.3 本章小结 115第5章 SkyWalking追踪模型 1165.1 追踪模型入门 1165.1.1 Dapper与追踪模型 1165.1.2 典型的追踪模型 1195.2 SkyWalking追踪模型与协议 1205.2.1 SkyWalking追踪模型 1205.2.2 SkyWalking数据传输协议 1225.3 SkyWalking探针上下文传播协议 1245.3.1 传播模型 1245.3.2 传播上下文 1245.4 SkyWalking v3协议 1255.5 本章小结 126第6章 SkyWalking OAP Server模块化架构 1276.1 模块化框架 1276.1.1 模块和模块实现 1276.1.2 模块管理配置文件 1296.2 模块启动与模块依赖 1306.3 模块可替换性 1316.4 模块实现选择器 1326.5 新增模块 1326.6 本章小结 133第7章 Observability Analysis Language体系 1347.1 什么是OAL 1347.2 OAL实现原理 1357.3 OAL语法 1377.3.1 指标计算定义语法 1377.3.2 disable语法 1427.4 本章小结 143第8章 SkyWalking OAP Server集群通信模型 1448.1 计算流 1458.2 通信协议 1468.3 集群协调器 1488.4 本章小结 149第9章 SkyWalking OAP Server存储模型 1509.1 模型结构介绍 1509.1.1 注册模型结构 1509.1.2 明细模型结构 1529.1.3 指标模型结构 1539.1.4 采样模型结构 1549.2 存储模型间的联系 1549.3 存储模型与OAL的关系 1569.4 本章小结 1590章 Java探针插件开发 16010.1 基础概念 16010.1.1 Span 16010.1.2 Trace Segment 16110.1.3 ContextCarrier 16210.1.4 ContextSnapshot 16210.2 核心对象相关API的使用 16210.3 探针插件工程结构 16810.3.1 工程结构简介 16810.3.2 定义拦截形式 16910.3.3 实现拦截形式的拦截器 17110.4 探针插件开发实战 17110.4.1 设计探针插件 17210.4.2 Apache Dubbo探针插件 17310.4.3 Spring @Async探针插件 17710.5 本章小结 1821章 探针和后端消息通信模式开发 18311.1 为什么官方默认不提供多种方式 18311.2 通信机制分析 18411.2.1 探针与后端的注册通信 18411.2.2 探针与后端的数据上报通信 19311.3 如何扩展通信模式 19711.3.1 使用HTTP扩展注册通信 19811.3.2 使用Kafka扩展数据上报通信 20511.4 本章小结 2142章 SkyWalking OAP Server监控与指标 21512.1 针对Trace场景的监控指标 21612.2 针对Service Mesh场景的监控指标 21912.3 自监控 22012.4 本章小结 22