●第1章Prometheus基礎入門1
1.1時序數據庫對比1
1.1.1InfluxDB簡介1
1.1.2Graphite簡介3
1.1.3OpenTSDB簡介5
1.1.4Open-Falcon簡介6
1.2Prometheus架構概述8
1.3快速安裝Prometheus10
1.4Prometheus源碼環境的搭建12
1.5時序數據可視化14
1.6本章小結16
第2章Prometheus配置詳解17
2.1global配置17
2.2scrape_config基礎配置17
2.2.1static_configs配置18
2.2.2file_sd_configs配置18
2.2.3其他服務發現19
2.2.4honor_labels配置19
2.2.5relabel_configs配置20
2.3Rule的相關配置21
2.4AlertManager相關配置23
2.5遠程存儲相關配置23
2.6本章小結24
第3章深入PrometheusTSDB25
3.1Gorilla簡介25
3.1.1timestamp壓縮26
3.1.2value值壓縮27
3.2時序數據存儲28
3.2.1bstream29
3.2.2Chunk接口33
3.2.3XORChunk實現33
3.2.4Pool40
3.2.5M數據42
3.2.6ChunkWriter43
3.2.7ChunkReader48
3.3Label組件52
3.4索引54
3.4.1index文件格式55
3.4.2encbuf與decbuf60
3.4.3index寫入詳解62
3.4.4index讀取詳解75
3.5WAL日志82
3.5.1核心組件83
3.5.2WAL初始化84
3.5.3WAL日志寫入詳解86
3.5.4WAL日志讀取詳解91
3.5.5Record類型95
3.6tombstones文件97
3.7Checkpoint101
3.8Block106
3.8.1初始化107
3.8.2block相關操作108
3.9壓縮110
3.9.1壓縮計劃112
3.9.2壓縮數據115
3.10Head131
3.10.1memSeries131
3.10.2stripeSeries135
3.10.3Head結構體137
3.11DB145
3.11.1初始化流程146
3.11.2Querier接口156
3.11.3刪除接口167
3.11.4寫入操作168
3.12本章小結169
第4章scrape模塊詳解171
4.1Target172
4.2scraper接口175
4.3loop接口177
4.3.1Pool179
4.3.2scrapeCache180
4.3.3寫入時序183
4.3.4sample tator&reportSample tator186
4.4scrapePool189
4.5Manager196
4.6本章小結199
第5章storage模塊201
5.1寫入201
5.2查詢206
5.3本章小結209
第6章HttpAPI接口210
6.1PromQL的相關接口210
6.1.1InstantQuery211
6.1.2RangeQuery214
6.數據查詢216
6.3LabelValue查詢218
6.4Target和Rule查詢219
6.5Admin接口220
6.6本章小結221
第7章PromQL語句詳解222
7.1Engine引擎222
7.2查詢數據226
7.3執行流程228
7.3.1VectorSelector節點229
7.3.2AggregateExpr節點232
7.3.3BinaryExpr節點239
7.3.4Call節點248
7.3.5ParenExpr&UnaryExpr節點250
7.4本章小結250
第8章Rule詳解252
8.1核心組件252
8.2加載Rule254
8.3RecordingRule處理流程257
8.4AlertingRecord處理流程261
8.5發送告警265
8.6本章小結268
第9章Discovery分析269
9.1基於文件的服務發現270
9.2discovery.Manager實現274
9.3PrometheusServer的啟動流程277
9.3.1監聽關閉事件279
9.3.2配置變更監聽280
9.3.3啟動TSDB存儲281
9.3.4初始化配置監聽282
9.3.5啟動核心模塊282
9.3.6reloader函數定義283
9.4本章小結284
第10章深入AlertManager285
10.1接收告警287
10.2查詢Receiver289
10.3AlertProvider存儲290
10.4Dispatcher294
10.5Pipeline299
10.5.1Gossip協議簡介302
10.5.2GossipSettleStage303
10.5.3InhibitStage304
10.5.4SilenceStage307
10.5.5DedupStage314
10.5.6RetryStage319
10.5.7SetNotifiesStage322
10.6cluster模塊簡析323
10.7本章小結328
第11章深入Client330
11.1數據類型330
11.2核心實現331
11.2.1Gauge333
11.2.2GaugeVec335
11.3Registerer340
11.4Handler346
11.5其他指標類型348
11.5.1Counter348
11.5.2Histogram350
11.5.3Summary353
11.6Exporter357
11.7本章小結361