微服務(wù)追蹤與監(jiān)控:Zipkin、Jaeger、Prometheus詳解
定 價(jià):89 元
- 作者:田雪松 編著
- 出版時(shí)間:2020/9/1
- ISBN:9787111662693
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP368.5
- 頁(yè)碼:272
- 紙張:
- 版次:
- 開本:16開
本書介紹了微服務(wù)追蹤與監(jiān)控領(lǐng)域主要的開源軟件,同時(shí)還介紹可觀察性相關(guān)的技術(shù)標(biāo)準(zhǔn)。開源軟件主要介紹了Zipkin、Jaeger和Prometheus等服務(wù)端組件的使用,同時(shí)還重點(diǎn)介紹了它們的埋點(diǎn)庫(kù)編程接口及其實(shí)現(xiàn)原理。對(duì)于使用Spring Cloud開發(fā)微服務(wù)的讀者,本書還介紹了在Spring Cloud中可以無(wú)縫集成的追蹤框架Sloth和監(jiān)控框架Micrometer。在開放標(biāo)準(zhǔn)方面,本書主要介紹了OpenTracing、OpenCensus和OpenTelemetry三種標(biāo)準(zhǔn),包括它們的技術(shù)規(guī)范及具體的實(shí)現(xiàn)代碼庫(kù)。本書還介紹了W3C的Trace Context和Correlation Context協(xié)議,它們定義了追蹤與監(jiān)控在HTTP中傳播的標(biāo)準(zhǔn)協(xié)議。此外,本書還簡(jiǎn)要介紹了監(jiān)控指標(biāo)暴露格式協(xié)議OpenMetrics。
本書涵蓋了微服務(wù)追蹤與監(jiān)控、可觀察性相關(guān)領(lǐng)域的大部分內(nèi)容,是了解和掌握這一領(lǐng)域技術(shù)知識(shí)和發(fā)展趨勢(shì)必不可少的參考書籍。本書適于具有一定編程基礎(chǔ)且了解微服務(wù)技術(shù)的研發(fā)人員,也是架構(gòu)師、運(yùn)維人員必備的技術(shù)手冊(cè)。本書也可作為大學(xué)高年級(jí)、研究生專業(yè)課程教材。
目錄
前言
第1章 分布式追蹤與監(jiān)控概覽
1.1 從監(jiān)控到可觀察性
1.1.1 監(jiān)控系統(tǒng)
1.1.2 追蹤系統(tǒng)
1.1.3 可觀察性
1.2 分布式監(jiān)控系統(tǒng)設(shè)計(jì)
1.2.1 體系結(jié)構(gòu)
1.2.2 時(shí)序數(shù)據(jù)
1.2.3 時(shí)序數(shù)據(jù)庫(kù)
1.3 分布式追蹤系統(tǒng)設(shè)計(jì)
1.3.1 追蹤模型
1.3.2 采樣策略
1.3.3 跨度傳播
第2章 Zipkin服務(wù)與組件
2.1 Zipkin快速入門
2.1.1 啟動(dòng)Zipkin服務(wù)
2.1.2 上報(bào)跨度
2.1.3 錯(cuò)誤排查
2.2 Zipkin組件與接口
2.2.1 體系結(jié)構(gòu)
2.2.2 組件配置
2.2.3 REST接口
2.3 跨度數(shù)據(jù)模型
2.3.1 基本信息
2.3.2 標(biāo)注與標(biāo)簽
2.3.3 端點(diǎn)
2.4 編碼與上報(bào)
2.4.1 編碼與傳輸組件
2.4.2 編碼器與上報(bào)組件
2.4.3 解碼器與收集組件
2.5 傳輸與存儲(chǔ)
2.5.1 傳輸方式
2.5.2 存儲(chǔ)組件
2.6 界面配置
2.6.1 查詢界面配置
2.6.2 追蹤歸檔
2.6.3 標(biāo)簽自動(dòng)補(bǔ)齊
2.6.4 服務(wù)依賴
第3章 使用Brave埋點(diǎn)
3.1 Brave概覽
3.1.1 快速入門
3.1.2 Tracing
3.1.3 Tracer
3.1.4 Span與ScopedSpan
3.2 生命周期與采樣策略
3.2.1 生命周期
3.2.2 FinishedSpanHandler
3.2.3 采樣策略
3.3 跨度本地傳播
3.3.1 TraceContext
3.3.2 CurrentTraceContext
3.3.3 currentSpan與nextSpan
3.2.2 ScopedSpan與SpanInScope
3.4 跨度遠(yuǎn)程傳播
3.4.1 B3傳播協(xié)議
3.4.2 W3C傳播協(xié)議
3.4.3 Propagation接口
3.4.4 隨行數(shù)據(jù)
3.5 使用埋點(diǎn)組件
3.5.1 Java Web埋點(diǎn)
3.5.2 MySQL埋點(diǎn)
第4章 Spring Cloud Sleuth
4.1 Sleuth快速入門
4.1.1 添加依賴
4.1.2 編寫代碼
4.1.3 日志關(guān)聯(lián)
4.1.4 原理解析
4.2 整合Zipkin服務(wù)
4.2.1 單服務(wù)追蹤
4.2.2 跨服務(wù)追蹤
4.3 Sleuth配置與定制
4.3.1 采樣器
4.3.2 定制跨度
4.3.3 定制Tracing
4.3.4 定制CurrentTraceContext
4.3.5 OpenTracing
4.4 線程與方法追蹤
4.4.1 線程池
4.4.2 @Async與@Scheduled
4.4.3 方法追蹤
第5章 Jaeger組件與應(yīng)用
5.1 Jaeger快速入門
5.1.1 使用All-in-one
5.1.2 服務(wù)埋點(diǎn)
5.2 Jaeger組件與配置
5.2.1 體系結(jié)構(gòu)
5.2.2 組件配置
5.2.3 通用配置
5.2.3 啟動(dòng)順序
5.3 Jaeger存儲(chǔ)插件
5.3.1 初始化Cassandra
5.3.2 Cassandra參數(shù)
5.3.3 使用Elasticsearch
5.4 Jaeger收集組件
5.4.1 面向代理組件的通道
5.4.2 面向埋點(diǎn)庫(kù)的通道
5.4.3 面向Zipkin的通道
5.4.4 內(nèi)部隊(duì)列
5.5 Jaeger代理組件
5.5.1 UDP通道
5.5.2 連接收集組件
5.6 Jaeger消費(fèi)組件
5.6.1 收集組件與Kafka
5.6.2 消費(fèi)組件與Kafka
5.7 Jaeger查詢組件
5.7.1 查詢追蹤
5.7.2 追蹤詳情
5.7.3 追蹤比較
5.7.4 系統(tǒng)結(jié)構(gòu)
5.7.5 查詢接口
5.8 定制Jaeger查詢組件
5.8.1 添加新菜單
5.8.2 配置已有菜單
5.8.3 頁(yè)面嵌入
5.8.4 追蹤歸檔
第6章 OpenTracing與Jaeger埋點(diǎn)庫(kù)
6.1 構(gòu)造器與配置類
6.1.1 JaegerTracer構(gòu)造器
6.1.2 JaegerTracer配置類
6.1.3 OpenTracing核心組件
6.2 OpenTracing數(shù)據(jù)模型
6.2.1 基本信息
6.2.2 跨度上下文
6.2.3 引用
6.3 跨度標(biāo)簽與日志
6.3.1 標(biāo)簽
6.4.2 日志
6.4 跨度上報(bào)與采樣策略
6.4.1 上報(bào)組件
6.4.2 兼容Zipkin
6.4.3 采樣策略
6.5 跨度傳播
6.5.1 進(jìn)程間傳播
6.5.2 進(jìn)程內(nèi)傳播
第7章 Prometheus服務(wù)概覽
7.1 Prometheus快速入門
7.1.1 安裝與啟動(dòng)
7.1.2 配置入門
7.1.3 體系結(jié)構(gòu)
7.2 數(shù)據(jù)模型與存儲(chǔ)
7.2.1 數(shù)據(jù)模型
7.2.2 時(shí)序數(shù)據(jù)庫(kù)
7.2.3 遠(yuǎn)程讀寫
7.3 查詢語(yǔ)言PromQL
7.3.1 數(shù)據(jù)類型
7.3.2 運(yùn)算符
7.3.3 函數(shù)
7.3.4 記錄規(guī)則
7.4 報(bào)警與可視化
7.4.1 報(bào)警狀態(tài)
7.4.2 報(bào)警配置
7.4.3 報(bào)警路由
7.4.4 報(bào)警優(yōu)化
第8章 Prometheus客戶端組件
8.1 Prometheus埋點(diǎn)庫(kù)
8.1.1 快速入門
8.1.2 核心類
8.1.3 OpenMetrics
8.2 Prometheus指標(biāo)類型
8.2.1 SimpleCollector
8.2.2 Counter與Gauge
8.2.3 Histogram
8.2.4 Summary
8.3 使用Micrometer
8.3.1 Micrometer
8.3.2 Spring Boot Actuator
8.4 導(dǎo)出器與推送網(wǎng)關(guān)
8.4.1 導(dǎo)出器
8.4.2 推送網(wǎng)關(guān)
第9章 OpenCensus與OpenTelemetry
9.1 OpenCensus追蹤埋點(diǎn)
9.1.1 體系結(jié)構(gòu)
9.1.2 追蹤埋點(diǎn)
9.1.3 跨度傳播
9.2 使用OpenCensus監(jiān)控埋點(diǎn)
9.2.1 測(cè)度與測(cè)量
9.2.2 聚合與視圖
9.2.3 標(biāo)簽上下文
9.2.4 關(guān)聯(lián)上下文
9.3 OpenTelemetry概覽
9.3.1 體系結(jié)構(gòu)
9.3.2 核心組件
9.3.3 上下文
9.3.4 OpenTracing Shim
9.4 OpenTelemetry追蹤埋點(diǎn)
9.4.1 跨度模型
9.4.2 配置追蹤
9.4.3 跨進(jìn)程傳播
9.5 OpenTelemetry監(jiān)控埋點(diǎn)
9.5.1 埋點(diǎn)工具
9.5.2 標(biāo)記綁定
9.5.3 標(biāo)記傳播