封面
版权信息
赞誉
前言
第1章 监控之美
1.1 监控:把握应用的脉搏
1.2 监控架构分类
1.3 MDD思想:从指标到洞察力
1.3.1 MDD理念综述
1.3.2 指导实践的3大监控方法论
1.4 监控系统选型分析及误区探讨
1.4.1 黑盒监控和白盒监控
1.4.2 监控检查的两种模式——拉取和推送
1.4.3 5种常见的监控系统
1.4.4 监控系统的选型分析及误区探讨
1.5 本章小结
第2章 Prometheus入门
2.1 Prometheus发展简史
2.2 Prometheus的主要特点
2.3 Prometheus架构剖析
2.4 Prometheus的3大局限性
2.5 快速安装并启动Prometheus
2.6 本章小结
第3章 Spring Boot可视化监控实战
3.1 用Micrometer仪表化JVM应用
3.2 在Spring Boot 2.x中集成Prometheus的方法
3.2.1 引入Maven依赖
3.2.2 application.properties配置
3.2.3 通过MeterBinder接口采集和注册指标
3.2.4 以埋点的方式更新指标数据
3.2.5 效果展示
3.3 针对Spring Boot 2.x采集并可视化相关数据
3.4 第三方专业可视化工具——Grafana
3.5 Grafana高级模板
3.6 邮件告警的生成与扩展
3.6.1 通过Alertmanager生成邮件告警
3.6.2 邮件告警扩展:cc和bcc
3.7 构建钉钉告警系统
3.7.1 安装MacOS Docker
3.7.2 安装Docker镜像
3.7.3 钉钉接入设置
3.7.4 钉钉告警功能验证
3.8 本章小结
第4章 PromQL让数据会说话
4.1 初识PromQL
4.1.1 PromQL的4种数据类型
4.1.2 时间序列
4.1.3 指标
4.2 PromQL中的4大选择器
4.2.1 匹配器
4.2.2 瞬时向量选择器
4.2.3 区间向量选择器
4.2.4 偏移量修改器
4.3 Prometheus的4大指标类型
4.3.1 计数器
4.3.2 仪表盘
4.3.3 直方图
4.3.4 摘要
4.4 13种聚合操作
4.5 Prometheus的3种二元操作符
4.5.1 算术运算符
4.5.2 集合/逻辑运算符
4.5.3 比较运算符
4.5.4 优先级
4.6 向量匹配
4.6.1 一对一匹配
4.6.2 一对多和多对一匹配
4.6.3 多对多匹配
4.7 本章小结
第5章 PromQL高级实战
5.1 Prometheus内置函数
5.1.1 动态标签函数
5.1.2 数学运算函数
5.1.3 类型转换函数
5.1.4 时间和日期函数
5.1.5 多对多逻辑运算符函数
5.1.6 排序函数
5.1.7 Counter函数
5.1.8 Gauge函数
5.1.9 Histogram函数
5.1.10 时间聚合函数
5.2 HTTP API
5.2.1 API响应格式
5.2.2 表达式查询
5.2.3 元数据管理
5.2.4 其他拓展
5.3 两种可定期执行的规则
5.3.1 记录规则
5.3.2 告警规则
5.4 指标的抓取与存储
5.4.1 用relabel_configs抓取指标
5.4.2 用metric_relabel_configs存储指标
5.5 通过调优解决PromQL耗尽资源问题
5.6 本章小结
第6章 Prometheus告警机制深度解析
6.1 Alertmanager架构解析
6.2 AMTool的安装与用法
6.3 配置文件的编写与解读
6.4 告警规则的定义
6.5 关于告警的高级应用与问题处理
6.5.1 Prometheus告警失灵
6.5.2 出现告警轰炸的问题
6.6 构建高可用告警集群
6.7 本章小结
第7章 Prometheus独孤九剑:通过定制Exporter监控一切
7.1 Exporter概述
7.2 Exporter的数据规范
7.3 Exporter数据采集方式
7.4 一个最简单的Exporter示例
7.5 自己动手编写一个Exporter
7.6 高质量Exporter的编写原则与方法
7.6.1 分配合理的端口号
7.6.2 设计落地页
7.6.3 将软件版本信息提供给Prometheus的正确方法
7.6.4 必备指标的梳理
7.6.5 编写高质量Exporter的其他注意事项
7.7 Node Exporter源码解析
7.8 Exporter高级应用:开启TSL连接和Basic Auth认证
7.8.1 准备证书
7.8.2 支持TLS的配置方法
7.8.3 支持Basic Auth的配置方法
7.9 本章小结
第8章 Spring Boot高级监控实战
8.1 Controller监控实战
8.2 业务代码监控实战
8.3 通过注解进行监控的设置与实战
8.4 Dubbo监控实战
8.5 SPI机制原理解析
8.6 SPI高级实战:基于Dubbo的分布式日志链路TraceID追踪
8.7 集成Spring Boot时的常见问题及其解决方案
8.8 关于Micrometer的两个常见问题及其解决方案
8.8.1 极大值BUG问题
8.8.2 Actuator内存溢出问题
8.9 micrometer-spring-legacy源码解析
8.9.1 spring.factories
8.9.2 CompositeMeterRegistryAutoConfiguration
8.9.3 XX-MeterRegistry的注册
8.9.4 WebMvcMetricsFilter过滤器
8.9.5 其他
8.10 本章小结
第9章 Prometheus集群实战
9.1 校时
9.2 Prometheus的3种常见HA架构方案
9.2.1 简单HA
9.2.2 简单HA+远程存储
9.2.3 简单HA+远程存储+联邦集群
9.2.4 联邦集群配置方式
9.2.5 功能分区配置方式
9.2.6 K8S单点故障引发的POD漂移问题
9.3 Prometheus集群架构采集优化方案
9.4 在企业中从零推广Prometheus架构
9.4.1 研发团队
9.4.2 运维团队
9.4.3 借助K8S一起推进上线
9.5 搭建基于M3DB的简单HA+远程存储Prometheus K8S集群
9.5.1 架构说明
9.5.2 K8S内部Prometheus
9.5.3 K8S外部Prometheus
9.5.4 M3DB
9.6 多租户、可横向扩展的Prometheus即服务——Cortex
9.7 本章小结
第10章 Prometheus存储原理与问题分析
10.1 本地存储文件结构解析
10.2 存储原理解析
10.3 存储配置方法
10.4 本地存储容量规划原则与方法
10.5 RAM容量规划原则与方法
10.6 本地存储及时性和时序性问题分析
10.7 本章小结
第11章 Prometheus其他相关技术分析与实战
11.1 Thanos架构与监控实战
11.1.1 Thanos架构解析
11.1.2 Thanos在Prometheus监控中的作用与实战
11.1.3 Thanos存在的问题
11.2 M3DB技术详解
11.3 Loki的特性、架构与应用
11.3.1 Loki特性
11.3.2 Loki架构简介
11.3.3 Loki使用方法
11.4 ELK的5种主流架构及其优劣分析
11.4.1 为什么要用ELK
11.4.2 基础架构
11.4.3 改良架构
11.4.4 二次改良架构
11.4.5 基于Tribe Node概念的架构
11.4.6 带有冷热分离功能的架构
11.5 Fluentd和Fluent Bit项目简介
11.6 Operator模式现状与未来展望
11.7 关于灵活运用Prometheus的几点建议
11.8 本章小结
附录A Prometheus相关端口列表
附录B PromQL速查手册
附录C Prometheus 2.x(从2.0.0到2.20.0)的重大版本变迁
附录D Prometheus自监控指标
附录E SLA服务可用性基础参考指标
更新时间:2020-11-12 17:43:00