微服務追蹤與監(jiān)控:Zipkin、Jaeger、Prometheus詳解
定 價:89 元
- 作者:田雪松 編著
- 出版時間:2020/9/1
- ISBN:9787111662693
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP368.5
- 頁碼:272
- 紙張:
- 版次:
- 開本:16開
本書介紹了微服務追蹤與監(jiān)控領域主要的開源軟件,同時還介紹可觀察性相關的技術標準。開源軟件主要介紹了Zipkin、Jaeger和Prometheus等服務端組件的使用,同時還重點介紹了它們的埋點庫編程接口及其實現(xiàn)原理。對于使用Spring Cloud開發(fā)微服務的讀者,本書還介紹了在Spring Cloud中可以無縫集成的追蹤框架Sloth和監(jiān)控框架Micrometer。在開放標準方面,本書主要介紹了OpenTracing、OpenCensus和OpenTelemetry三種標準,包括它們的技術規(guī)范及具體的實現(xiàn)代碼庫。本書還介紹了W3C的Trace Context和Correlation Context協(xié)議,它們定義了追蹤與監(jiān)控在HTTP中傳播的標準協(xié)議。此外,本書還簡要介紹了監(jiān)控指標暴露格式協(xié)議OpenMetrics。
本書涵蓋了微服務追蹤與監(jiān)控、可觀察性相關領域的大部分內(nèi)容,是了解和掌握這一領域技術知識和發(fā)展趨勢必不可少的參考書籍。本書適于具有一定編程基礎且了解微服務技術的研發(fā)人員,也是架構師、運維人員必備的技術手冊。本書也可作為大學高年級、研究生專業(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)設計
1.2.1 體系結構
1.2.2 時序數(shù)據(jù)
1.2.3 時序數(shù)據(jù)庫
1.3 分布式追蹤系統(tǒng)設計
1.3.1 追蹤模型
1.3.2 采樣策略
1.3.3 跨度傳播
第2章 Zipkin服務與組件
2.1 Zipkin快速入門
2.1.1 啟動Zipkin服務
2.1.2 上報跨度
2.1.3 錯誤排查
2.2 Zipkin組件與接口
2.2.1 體系結構
2.2.2 組件配置
2.2.3 REST接口
2.3 跨度數(shù)據(jù)模型
2.3.1 基本信息
2.3.2 標注與標簽
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 標簽自動補齊
2.6.4 服務依賴
第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 日志關聯(lián)
4.1.4 原理解析
4.2 整合Zipkin服務
4.2.1 單服務追蹤
4.2.2 跨服務追蹤
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組件與應用
5.1 Jaeger快速入門
5.1.1 使用All-in-one
5.1.2 服務埋點
5.2 Jaeger組件與配置
5.2.1 體系結構
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)結構
5.7.5 查詢接口
5.8 定制Jaeger查詢組件
5.8.1 添加新菜單
5.8.2 配置已有菜單
5.8.3 頁面嵌入
5.8.4 追蹤歸檔
第6章 OpenTracing與Jaeger埋點庫
6.1 構造器與配置類
6.1.1 JaegerTracer構造器
6.1.2 JaegerTracer配置類
6.1.3 OpenTracing核心組件
6.2 OpenTracing數(shù)據(jù)模型
6.2.1 基本信息
6.2.2 跨度上下文
6.2.3 引用
6.3 跨度標簽與日志
6.3.1 標簽
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服務概覽
7.1 Prometheus快速入門
7.1.1 安裝與啟動
7.1.2 配置入門
7.1.3 體系結構
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指標類型
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 導出器與推送網(wǎng)關
8.4.1 導出器
8.4.2 推送網(wǎng)關
第9章 OpenCensus與OpenTelemetry
9.1 OpenCensus追蹤埋點
9.1.1 體系結構
9.1.2 追蹤埋點
9.1.3 跨度傳播
9.2 使用OpenCensus監(jiān)控埋點
9.2.1 測度與測量
9.2.2 聚合與視圖
9.2.3 標簽上下文
9.2.4 關聯(lián)上下文
9.3 OpenTelemetry概覽
9.3.1 體系結構
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 標記綁定
9.5.3 標記傳播