2.1 Prometheus发展简史
Prometheus和Kubernetes不仅在使用过程中紧密相关,而且在历史上也有很深的渊源。在加利福尼亚州山景城的Google公司里曾经有两款系统——Borg系统和它的监控Borgmon系统。Borg系统是Google内部用来管理来自不同应用、不同作业的集群的管理器,每个集群都会拥有数万台服务器及上万个作业;Borgmon系统则是与Borg系统配套的监控系统。Borg系统和Borgmon系统都没有开源,但是目前开源的Kubernetes、Prometheus的理念都是对它们的理念的传承。
Kubernetes系统传承于Borg系统,Prometheus则传承于Borgmon系统。Google SRE的书内也曾提到,与Borgmon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器调度管理系统中,通常会搭配Prometheus进行监控。
2012年前Google SRE工程师Matt T.Proud将Prometheus作为研究项目开始开发,在他加入SoundCloud公司后,与另一位工程师Julius Volz以开源软件的形式对Prometheus进行研发,并且于2015年年初对外发布早期版本。Prometheus是独立的开源项目,并且由公司来运作,有非常活跃的社区和许多开发人员,因此很多公司使用它来满足自己的监控需求。2016年5月,继Kubernetes之后Prometheus成为第二个正式加入CNCF的项目,同年6月正式发布1.0版本。2017年年底发布了基于全新存储层的2.0版本,该版本能更好地与容器平台、云平台兼容。
Prometheus官网[1]首页如图2-2所示。Prometheus主要用于提供近实时,基于动态云环境、容器、微服务、应用程序等的监控服务。在《站点稳定性工程:Google如何运行可靠的系统》一书中也提到,尽管Borgmon仍然是谷歌内部的,但是将时间序列数据作为生成警报的数据源的想法,已经通过Prometheus等完美体现了。这直接说明了Prometheus和Kubernetes、Google具有很深的历史渊源。
图2-2 Prometheus官网首页
[1] Prometheus官网:https://prometheus.io/。