微服務(wù)追蹤與監(jiān)控:Zipkin、Jaeger、Prometheus詳解
定 價:89 元
- 作者:田雪松 編著
- 出版時間:2020/9/1
- ISBN:9787111662693
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP368.5
- 頁碼:272
- 紙張:
- 版次:
- 開本:16開
本書介紹了微服務(wù)追蹤與監(jiān)控領(lǐng)域主要的開源軟件,同時還介紹可觀察性相關(guān)的技術(shù)標(biāo)準(zhǔn)。開源軟件主要介紹了Zipkin、Jaeger和Prometheus等服務(wù)端組件的使用,同時還重點介紹了它們的埋點庫編程接口及其實現(xiàn)原理。對于使用Spring Cloud開發(fā)微服務(wù)的讀者,本書還介紹了在Spring Cloud中可以無縫集成的追蹤框架Sloth和監(jiān)控框架Micrometer。在開放標(biāo)準(zhǔn)方面,本書主要介紹了OpenTracing、OpenCensus和OpenTelemetry三種標(biāo)準(zhǔn),包括它們的技術(shù)規(guī)范及具體的實現(xiàn)代碼庫。本書還介紹了W3C的Trace Context和Correlation Context協(xié)議,它們定義了追蹤與監(jiān)控在HTTP中傳播的標(biāo)準(zhǔn)協(xié)議。此外,本書還簡要介紹了監(jiān)控指標(biāo)暴露格式協(xié)議OpenMetrics。
本書涵蓋了微服務(wù)追蹤與監(jiān)控、可觀察性相關(guān)領(lǐng)域的大部分內(nèi)容,是了解和掌握這一領(lǐng)域技術(shù)知識和發(fā)展趨勢必不可少的參考書籍。本書適于具有一定編程基礎(chǔ)且了解微服務(wù)技術(shù)的研發(fā)人員,也是架構(gòu)師、運維人員必備的技術(shù)手冊。本書也可作為大學(xué)高年級、研究生專業(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è)計
1.2.1 體系結(jié)構(gòu)
1.2.2 時序數(shù)據(jù)
1.2.3 時序數(shù)據(jù)庫
1.3 分布式追蹤系統(tǒng)設(shè)計
1.3.1 追蹤模型
1.3.2 采樣策略
1.3.3 跨度傳播
第2章 Zipkin服務(wù)與組件
2.1 Zipkin快速入門
2.1.1 啟動Zipkin服務(wù)
2.1.2 上報跨度
2.1.3 錯誤排查
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 端點
2.4 編碼與上報
2.4.1 編碼與傳輸組件
2.4.2 編碼器與上報組件
2.4.3 解碼器與收集組件
2.5 傳輸與存儲
2.5.1 傳輸方式
2.5.2 存儲組件
2.6 界面配置
2.6.1 查詢界面配置
2.6.2 追蹤歸檔
2.6.3 標(biāo)簽自動補齊
2.6.4 服務(wù)依賴
第3章 使用Brave埋點
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 跨度遠程傳播
3.4.1 B3傳播協(xié)議
3.4.2 W3C傳播協(xié)議
3.4.3 Propagation接口
3.4.4 隨行數(shù)據(jù)
3.5 使用埋點組件
3.5.1 Java Web埋點
3.5.2 MySQL埋點
第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ù)埋點
5.2 Jaeger組件與配置
5.2.1 體系結(jié)構(gòu)
5.2.2 組件配置
5.2.3 通用配置
5.2.3 啟動順序
5.3 Jaeger存儲插件
5.3.1 初始化Cassandra
5.3.2 Cassandra參數(shù)
5.3.3 使用Elasticsearch
5.4 Jaeger收集組件
5.4.1 面向代理組件的通道
5.4.2 面向埋點庫的通道
5.4.3 面向Zipkin的通道
5.4.4 內(nèi)部隊列
5.5 Jaeger代理組件
5.5.1 UDP通道
5.5.2 連接收集組件
5.6 Jaeger消費組件
5.6.1 收集組件與Kafka
5.6.2 消費組件與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 頁面嵌入
5.8.4 追蹤歸檔
第6章 OpenTracing與Jaeger埋點庫
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 跨度上報與采樣策略
6.4.1 上報組件
6.4.2 兼容Zipkin
6.4.3 采樣策略
6.5 跨度傳播
6.5.1 進程間傳播
6.5.2 進程內(nèi)傳播
第7章 Prometheus服務(wù)概覽
7.1 Prometheus快速入門
7.1.1 安裝與啟動
7.1.2 配置入門
7.1.3 體系結(jié)構(gòu)
7.2 數(shù)據(jù)模型與存儲
7.2.1 數(shù)據(jù)模型
7.2.2 時序數(shù)據(jù)庫
7.2.3 遠程讀寫
7.3 查詢語言PromQL
7.3.1 數(shù)據(jù)類型
7.3.2 運算符
7.3.3 函數(shù)
7.3.4 記錄規(guī)則
7.4 報警與可視化
7.4.1 報警狀態(tài)
7.4.2 報警配置
7.4.3 報警路由
7.4.4 報警優(yōu)化
第8章 Prometheus客戶端組件
8.1 Prometheus埋點庫
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追蹤埋點
9.1.1 體系結(jié)構(gòu)
9.1.2 追蹤埋點
9.1.3 跨度傳播
9.2 使用OpenCensus監(jiān)控埋點
9.2.1 測度與測量
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追蹤埋點
9.4.1 跨度模型
9.4.2 配置追蹤
9.4.3 跨進程傳播
9.5 OpenTelemetry監(jiān)控埋點
9.5.1 埋點工具
9.5.2 標(biāo)記綁定
9.5.3 標(biāo)記傳播