本書共分為11章,緊密圍繞Prometheus的相關概念和技術展開介紹。 第1章主要介紹了監(jiān)控系統(tǒng)的相關概念。本章首先介紹了監(jiān)控的概念、監(jiān)控的分類、MDD(指標驅動開發(fā))的理念、Google四大黃金指標、USE方法、RED方法等知識;接著介紹了監(jiān)控中的探針和內省、拉取和推送等常見手法;最后介紹了常見的監(jiān)控系統(tǒng)Nagios、Zabbix、Ganglia、Open-Falcon、ZMon,以及進行監(jiān)控系統(tǒng)選型時應該考慮的維度及誤區(qū)。 第2章介紹了Prometheus的相關概念。從歷史、特點、架構、局限性、快速開始這5個方面介紹了Prometheus是什么,它在監(jiān)控領域有哪些使用場景,以及如何快速安裝和啟動Prometheus。 第3章介紹了在Spring Boot中如何集成Prometheus。本章通過介紹Micrometer的理論,輔以Spring Boot 2.x應用的案例,一步步教讀者將Spring Boot 2.x應用數據傳輸到Prometheus監(jiān)控系統(tǒng)中,再以可視化監(jiān)控大盤的形式展現(xiàn)在Grafana儀表盤中。本章還介紹了當系統(tǒng)出現(xiàn)故障時,讀者如何將Spring Boot 2.x應用的故障信息以告警的形式發(fā)送到郵箱或者釘釘中。本章內容對于廣大開發(fā)者來說具有一定的實戰(zhàn)指導作用。 第4章介紹了與PromQL相關的知識。PromQL是Prometheus實戰(zhàn)的核心,是Prometheus 場景的基礎,也是Prometheus的重中之重。本章用很大的篇幅,從時間序列、PromQL數據類型、指標類型、選擇器、聚合操作、二元操作符、內置函數、最佳實踐、性能優(yōu)化等方面,通過理論聯(lián)系實際的方式,全方位介紹了與PromQL相關的概念及其具體用法。 第5章介紹了PromQL的高級用法。首先介紹了39個PromQL內置函數,然后圍繞HTTP API、記錄規(guī)則、告警規(guī)則、metric_relabel_configs、relabel_configs等多個知識點,以理論聯(lián)系實際、知識點結合案例的形式,全方位介紹了PromQL的高級用法和最佳實踐。 第6章介紹了Prometheus的告警模塊—Alertmanager。本章圍繞Alertmanager告警的架構、工作原理、集群、觸發(fā)的流程等展開介紹,接著拓展了告警分組、抑制、靜默、延遲等眾多知識點。讀完本章,讀者可以輕松理解告警是如何觸發(fā)的,還可以分析、定位、解決告警轟炸、告警不準確等常見問題。 第7章介紹了Prometheus中與Exporter相關的概念。Exporter的來源主要有兩個,一個是社區(qū),另一個是用戶自定義。本章從數據規(guī)范、數據采集方式、案例代碼編寫等方面一步步指導讀者自定義Exporter。為了幫助讀者提高編碼水平和真正寫好Exporter,本章還給出了寫好Exporter的建議,并結合Node Exporter、Redis Exporter、MySQL Exporter、RocketMQ Exporter等的原理進行分析講解。通過對本章的學習,讀者可以掌握使用和定制Exporter的方法。 第8章介紹了與Spring Boot相關的高級話題,幫助讀者了解Prometheus集成Spring Boot的原理、源碼和解決方案。本章針對Prometheus監(jiān)控RESTful、監(jiān)控業(yè)務、通過注解進行監(jiān)控、監(jiān)控Dubbo這4個真實需求給出了源碼級的技術指導方案。對Prometheus集成Spring Boot過程中可能產生的問題,如空指針、極大值、內存溢出等,本章也做了補充分析與解答。 第9章介紹了與Prometheus集群相關的實戰(zhàn)內容。本章圍繞Prometheus集群實戰(zhàn)的架構問題,討論了多種集群解決方案(簡單HA、簡單HA+遠程存儲、簡單HA+遠程存儲+聯(lián)邦集群)的理念、方法及優(yōu)化手段,探究如何構建具有更高擴展性和可靠性的集群。本章是實戰(zhàn)章節(jié),在采集指標、推廣Prometheus在企業(yè)中的部署等細節(jié)問題上都給出了指導。本章還通過搭建一個基于M3DB的簡單HA+遠程存儲Prometheus K8S集群的真實案例,用步驟引導以及配置文件樣例的形式,帶領讀者實際部署Prometheus集群。 第10章介紹了Prometheus的存儲原理。Prometheus不僅是一個監(jiān)控系統(tǒng),還是一款優(yōu)秀的時序數據庫。本章主要圍繞Prometheus 3.0版本的TSDB本地存儲,對存儲文件的格式、存儲的原理、chunk、索引、block、WAL日志、tombstones、Checkpoint等相關知識點進行介紹,讓讀者清晰地了解Prometheus存儲的運行機制。第11章介紹了Prometheus的相關技術。本章首先介紹了Prometheus的伴侶—Thanos和M3DB,并對使用這些技術的過程中可能出現(xiàn)的一些問題給出了指導和建議;然后介紹了繼承Prometheus理念的Loki,詳細介紹了Loki、ELK等相關日志技術的原理和架構方案;最后,介紹了Operator模式和Prometheus Operator模式,以及在實戰(zhàn)中針對壓測、查找中間件(如Redis問題)等場景應該如何靈活運用Prometheus。