Apache SkyWalking實戰(zhàn)
定 價:79 元
- 作者:吳晟 高洪濤 趙禹光 曹亦雄 等
- 出版時間:2020/7/1
- ISBN:9787111659068
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP316.4
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
內(nèi)容介紹
這是一本從功能使用、項目設(shè)計、核心模塊、工作原理、擴展實踐5個維度全面講解SkyWalking的著作。由SkyWalking的創(chuàng)始人和核心開發(fā)團隊撰寫,得到了來自華為、百度、螞蟻金服、京東數(shù)科、Tetrate.io的5位技術(shù)專家的聯(lián)袂推薦。
本書共14章,在邏輯上分為4個部分:
第壹部分 SkyWalking入門(第1~3章)
詳細介紹了SkyWalking的必備常識、架構(gòu)設(shè)計、安裝與配置,以及它在單體應(yīng)用架構(gòu)和微服務(wù)架構(gòu)中的實戰(zhàn)操作,能幫助讀者快速上手;
第二部分 SkyWalking理論(第4~5章)
作為監(jiān)控軟件,SkyWalking需要考慮如何使自身對應(yīng)用的影響*小化,以及如何實現(xiàn)分布式追蹤和監(jiān)控,這兩章對此做了詳細的技術(shù)分析。內(nèi)存無堵塞隊列是減小系統(tǒng)負載的關(guān)鍵,而集中分布式追蹤模型是SkyWalking監(jiān)控分析的靈魂。
第三部分 SkyWalking原理(第6~12章)
SkyWalking后端的OAP平臺具有極強的模塊化和擴展能力,本篇深入講解了總體的模塊化設(shè)計,以及OAL分析、集群和存儲這三個*核心模塊。此外,還介紹了探針插件開發(fā)和MQ通信模式擴展這兩個熱門主題。
第四部分 SkyWalking趨勢(第13~14章)
SkyWalking雖然是以分布式探針為基礎(chǔ)的分布式追蹤工具,但深耕于整個APM領(lǐng)域。本部分從Service Mesh和基于語言探針性能剖析這兩大方向,展現(xiàn)了SkyWalking在云原生領(lǐng)域更大的集成能力和運用范圍。
前 言
第1章 全面認識Apache SkyWalking 1
1.1 SkyWalking介紹 1
1.1.1 什么是SkyWalking 1
1.1.2 SkyWalking的發(fā)展歷程 2
1.1.3 SkyWalking的適用場景 3
1.1.4 SkyWalking的社區(qū)與生態(tài) 5
1.2 SkyWalking的架構(gòu)設(shè)計 6
1.2.1 面向協(xié)議設(shè)計 7
1.2.2 模塊化設(shè)計 8
1.2.3 輕量化設(shè)計 9
1.3 SkyWalking的優(yōu)勢 9
1.3.1 傳統(tǒng)分布式架構(gòu)與云原生的一致性支持 10
1.3.2 易于維護 10
1.3.3 高性能 11
1.3.4 利于二次開發(fā)和集成 11
1.4 SkyWalking開發(fā)必備知識介紹 11
1.4.1 JavaAgent介紹 12
1.4.2 遠程調(diào)試介紹 18
1.4.3 Service Mesh介紹 19
1.5 本章小結(jié) 21
第2章 SkyWalking安裝與配置 22
2.1 項目編譯與工程結(jié)構(gòu) 22
2.1.1 項目編譯 22
2.1.2 工程結(jié)構(gòu) 24
2.2 JavaAgent安裝 27
2.2.1 安裝方法 27
2.2.2 配置參數(shù) 29
2.2.3 插件介紹 30
2.2.4 高級特性 36
2.3 后端與UI部署 43
2.3.1 SkyWalking部署介紹 43
2.3.2 快速啟動 45
2.3.3 application.yaml詳解 46
2.3.4 參數(shù)復寫 51
2.3.5 IP和端口設(shè)置 51
2.3.6 集群管理配置 52
2.3.7 Kubernetes部署 56
2.3.8 后端存儲 58
2.3.9 設(shè)置服務(wù)端采樣率 62
2.3.10 告警設(shè)置 63
2.3.11 Exporter設(shè)置 66
2.3.12 UI部署詳解 66
2.4 UI介紹 67
2.4.1 Dashboard介紹 67
2.4.2 拓撲介紹 69
2.4.3 Trace視圖 70
2.5 本章小結(jié) 71
第3章 Apache SkyWalking實戰(zhàn) 72
3.1 SkyWalking與單體應(yīng)用架構(gòu) 72
3.1.1 什么是單體應(yīng)用架構(gòu) 72
3.1.2 單體應(yīng)用架構(gòu)的優(yōu)缺點 74
3.1.3 SkyWalking對單體應(yīng)用架構(gòu)的適用性 74
3.2 SkyWalking與微服務(wù)架構(gòu) 75
3.2.1 遠程過程調(diào)用 77
3.2.2 外部服務(wù) 78
3.3 實戰(zhàn)環(huán)境搭建 79
3.3.1 SkyWalking后臺搭建 79
3.3.2 實戰(zhàn)集群搭建 80
3.4 實戰(zhàn)操作 82
3.4.1 觀察微服務(wù)中的各個維度 82
3.4.2 觀察指標 83
3.4.3 觀察系統(tǒng)架構(gòu) 85
3.4.4 提取關(guān)鍵路徑 90
3.4.5 查找失敗服務(wù)或請求 93
3.4.6 查找慢服務(wù)或請求 96
3.4.7 處理告警 101
3.5 本章小結(jié) 105
第4章 輕量級隊列內(nèi)核 106
4.1 什么是輕量級隊列內(nèi)核 106
4.1.1 Buffer 106
4.1.2 Channel 107
4.1.3 DataCarrier 108
4.2 生產(chǎn)者—消費者如何協(xié)同 108
4.2.1 生產(chǎn)消息 108
4.2.2 消費消息 111
4.3 本章小結(jié) 115
第5章 SkyWalking追蹤模型 116
5.1 追蹤模型入門 116
5.1.1 Dapper與追蹤模型 116
5.1.2 典型的追蹤模型 119
5.2 SkyWalking追蹤模型與協(xié)議 120
5.2.1 SkyWalking追蹤模型 120
5.2.2 SkyWalking數(shù)據(jù)傳輸協(xié)議 122
5.3 SkyWalking探針上下文傳播協(xié)議 124
5.3.1 傳播模型 124
5.3.2 傳播上下文 124
5.4 SkyWalking v3協(xié)議 125
5.5 本章小結(jié) 126
第6章 SkyWalking OAP Server模塊化架構(gòu) 127
6.1 模塊化框架 127
6.1.1 模塊和模塊實現(xiàn) 127
6.1.2 模塊管理配置文件 129
6.2 模塊啟動與模塊依賴 130
6.3 模塊可替換性 131
6.4 模塊實現(xiàn)選擇器 132
6.5 新增模塊 132
6.6 本章小結(jié) 133
第7章 Observability Analysis Language體系 134
7.1 什么是OAL 134
7.2 OAL實現(xiàn)原理 135
7.3 OAL語法 137
7.3.1 指標計算定義語法 137
7.3.2 disable語法 142
7.4 本章小結(jié) 143
第8章 SkyWalking OAP Server集群通信模型 144
8.1 計算流 145
8.2 通信協(xié)議 146
8.3 集群協(xié)調(diào)器 148
8.4 本章小結(jié) 149
第9章 SkyWalking OAP Server存儲模型 150
9.1 模型結(jié)構(gòu)介紹 150
9.1.1 注冊模型結(jié)構(gòu) 150
9.1.2 明細模型結(jié)構(gòu) 152
9.1.3 指標模型結(jié)構(gòu) 153
9.1.4 采樣模型結(jié)構(gòu) 154
9.2 存儲模型間的聯(lián)系 154
9.3 存儲模型與OAL的關(guān)系 156
9.4 本章小結(jié) 159
第10章 Java探針插件開發(fā) 160
10.1 基礎(chǔ)概念 160
10.1.1 Span 160
10.1.2 Trace Segment 161
10.1.3 ContextCarrier 162
10.1.4 ContextSnapshot 162
10.2 核心對象相關(guān)API的使用 162
10.3 探針插件工程結(jié)構(gòu) 168
10.3.1 工程結(jié)構(gòu)簡介 168
10.3.2 定義攔截形式 169
10.3.3 實現(xiàn)攔截形式的攔截器 171
10.4 探針插件開發(fā)實戰(zhàn) 171
10.4.1 設(shè)計探針插件 172
10.4.2 Apache Dubbo探針插件 173
10.4.3 Spring @Async探針插件 177
10.5 本章小結(jié) 182
第11章 探針和后端消息通信模式開發(fā) 183
11.1 為什么官方默認不提供多種方式 183
11.2 通信機制分析 184
11.2.1 探針與后端的注冊通信 184
11.2.2 探針與后端的數(shù)據(jù)上報通信 193
11.3 如何擴展通信模式 197
11.3.1 使用HTTP擴展注冊通信 198
11.3.2 使用Kafka擴展數(shù)據(jù)上報通信 205
11.4 本章小結(jié) 214
第12章 SkyWalking OAP Server監(jiān)控與指標 215
12.1 針對Trace場景的監(jiān)控指標 216
12.2 針對Service Mesh場景的監(jiān)控指標 219
12.3 自監(jiān)控 220
12.4 本章小結(jié) 221
第13章 下一代監(jiān)控體系——SkyWalking觀測Service Mesh 222
13.1 SkyWalking可觀測性模型 223
13.1.1 監(jiān)控指標 223
13.1.2 告警與可視化 224
13.1.3 分布式追蹤和日志 225
13.2 觀測Istio的監(jiān)控指標 226
13.2.1 Mixer模式集成 226
13.2.2 ALS模式集成 227
13.3 觀測Istio的技術(shù)發(fā)展 229
13.4 本章小結(jié) 229
第14章 SkyWalking未來初探 230
14.1 SkyWalking 7新特性 230
14.1.1 Java探針不再支持JDK 1.6和1.7 230
14.1.2 支持新的生產(chǎn)級存儲實現(xiàn) 231
14.1.3 HTTP請求參數(shù)采集 231
14.1.4 HTTP收集協(xié)議和Nginx監(jiān)控 232
14.1.5 Elasticsearch存儲的進一步優(yōu)化 232
14.2 代碼性能剖析 232
14.2.1 性能剖析基本原理 232
14.2.2 性能剖析的功能特點 233
14.2.3 使用場景 233
14.3 SkyWalking 8 Roadmap 234
14.4 本章小結(jié) 234