全书组织

这里假定你已经对Linux系统以及Docker技术有一定的基本认识,也可能使用过像Java,Golang这样的编程语言,在本书中我们不会事无巨细的讲述所有事。

第1章,是Prometheus基础的综述,通过一个简单案例(使用Prometheus采集主机的监控数据)来了解Prometheus是什么,能做什么,以及它的架构组成。通过阅读本章希望读者能对Promentheus有一个基本的理解和认识。

第2章,读者将会了解到Prometheus的数据模型,以及时间序列模型。同时会学习到如何利用Prometheus的数据查询语言PrmQL(Prometheus Query Language)对监控数据进行查询、聚合、计算等。

第3章,我们的重点将放在监控告警部分,作为监控系统的重要能力之一,我们希望能够及时的了解系统的变化。这一章中读者将学习如何在Prometheus中自定义告警规则,同时了解如何使用AlertManager对告警进行处理。

第4章,介绍Prometheus中一些常用的Exporter的使用场景以及使用方法。之后还会带领读者通过Java和Golang实现自定义的Exporter,同时了解如何在现有应用系统上添加对Prometheus支持,从而实现应用层面的监控对接。

从第1章到第4章的部分都是本书的基础性章节,对大部分的研发或者运维人员来说可以快速掌握,并且能够使用Prometheus来完成一些基本的日常任务。余下的章节我们会关注到Prometheus的高级用法部分。

第5章,"You can't fix what you can't see"。可视化是监控的核心目标之一,这部分将会基于Grafana这一可视化工具实现监控数据可视化,并且了解Grafana作为一个通用的可视化工具是如何与Prometheus进行配合的。

第6章,读者将会了解到如何通过Prometheus的服务发现能力,自动的发现那些需要监控的资源和服务。特别是在云平台或者容器平台中,资源的创建和销毁成本变得更加频繁,通过服务发现自动地去发现监控目标,能够充分简化Prometheus的运维和管理难度。

第7章,在单个节点的情况下Prometheus能够轻松完成对数以百万的监控指标的处理,但是当监控的目标资源以及数据量变得更大的时候,我们如何实现对Prometheus的扩展?这一章节中重点讨论Prometheus高可用方面的能力。

第8章,这一章节中我们的另外一位重要成员Kubernetes将会登场,这里我们会带领读者对Kubernetes有一个基本的认识,并且通过Prometheus构建我们的容器云监控系统。并且介绍如何通过Prometheus与Kubernetes结合实现应用程序的弹性伸缩。