首发于公众号@陈树义,用最简单的语言分享我的技术感悟。第一次接触Prometheus是在去年,当时工作了六年。但是现在看来,工作了六年才认识普罗米修斯有点晚了,因为普罗米修斯确实更重要。我个人觉得Prometheus应该3-5岁的时候就可以看懂,对它应该有一套完整的知识。最后,你应该掌握:如何从零开始搭建业务监控系统!说到Prometheus,可能大部分人都不太清楚它是干什么的。即使你知道它是用来监控的,你也不明白为什么要监控它。这其中涉及的原因有很多,我认为主要有以下两个原因。一是大局观不足。很多开发同学长期在一线开发,局限于自己的开发需求,对整个系统和整个系统的业务并不了解。只有当了leader,才会更加关注系统的大局。而当你成为领导者,你会发现业务监控系统是多么的重要!(毕竟不想半夜被手机吵醒,昏昏沉沉的打开电脑解决问题~)第二,缺乏工作经验。刚工作一两年的同学,对Java整个知识体系的了解还不够。Prometheus的监控知识属于比较高级的知识,自然会排在比较靠后的位置。除了上面提到的两个主要原因外,其实还有一些其他的原因,比如:公司技术系统的问题等等。言归正传,Prometheus到底是干什么的,我们为什么要学习Prometheus?什么是普罗米修斯?普罗米修斯(Prometheus)是古希腊的神,名字的意思是“远见卓识”。从名字就可以看出,Prometheus是用来“预见性”监控告警的。维基百科简单的写了它的功能:Prometheusisafreesoftwareapplicationusedforeventmonitoringandalerting(普罗米修斯是一个免费软件,用于监控和报警)。Prometheus官网用“Frommetricstoinsight”(意思是有指标的洞察系统)来描述Prometheus的使用。看到这里,我们大概知道Prometheus其实是一个数据监控解决方案,可以帮助你快速轻松的搭建一个可视化的监控系统。但这还是有点抽象。让我举几个简单的例子来帮助你理解普罗米修斯能做什么。对于运维人员来说,需要监控机器的CPU、内存、硬盘的使用情况,以保证应用在机器上运行的稳定性。对于研发人员来说,关注异常指标的变化,保证业务的稳定运行。对于产品或运营,他们更关心产品层面的事情,比如:某个活动参与人数的增长,活动积分的发放。以上提到的功能,Prometheus都可以实现。Prometheus可以根据这些采集到的数据实现告警功能。例如:运维要在CPU达到80%时给值班运维人员发邮件,产品要在发放活动积分超过10万时发告警邮件。这些都可以用Prometheus来实现。除了数据采集和告警功能,Prometheus还有很多强大的功能,比如:强大的ProQL查询,众多的客户端库等。由于Prometheus功能强大,构建成本低,现在越来越多的公司使用Prometheus作为他们的数据监控解决方案。为什么要学习普罗米修斯?对于一直在一线开发的同学,可能只要把自己的需求做好,没有bug,顺利上线,你的任务就完成了。但是如果你是领导,那么你就是对整个业务系统负责,这个业务系统出了什么问题都是你的责任。这时候就需要时刻关注系统是否正常运行。对于流量较小的系统,几分钟的故障可能不会造成太大的损失。但对于淘宝、美团、字节跳动这样的巨头来说,宕机一分钟的损失可能高达数百万!那么找出此时系统运行是否正常?各项业务指标是否超Threshold?这些问题是每个有经验的开发者都需要注意的!那么如何监控你的系统呢?如何知道系统当前是正常还是异常?甚至如何预测系统将来可能会出现问题?Prometheus正是那一套数据监控解决方案。让您随时掌控系统的运行状态,快速定位问题所在位置,快速排除故障。只要按照Prometheus的方式,一步步学习和部署,就可以监控机器CPU、内存等资源的使用情况,Java应用的运行状态,以及各项业务指标的实时数据。当然也有一些公司会使用Kafaka采集监控数据,存储在Hive中,最后通过页面聚合数据,实现数据监控。但该方案需要开发者掌握Hive+Hadoop等大数据框架,前端展示相对有限。Prometheus可以直接部署使用,也可以与Grafana结合使用,呈现出非常多样化的图表配置。对于中小型团队来说,可以大大降低成本,加快研发速度。对于个人而言,掌握普罗米修斯可以增加你作为领导者的竞争力。毕竟,如果一个研发人员不知道自己系统的运行状况,他怎么能当领导,带领团队前进呢?总结来说,工作多年的研发人员,一定对自己负责的系统有清晰的认识。但是,要做到心中有数,光靠盲目自信是不够的,还必须借助一套强大的业务监控系统。Prometheus作为其中的佼佼者,以其完备的功能和海量的数据支持,让我们能够以低成本实现业务监控。参考资料Prometheus-监控系统&时序数据库Prometheus-维基百科,免费百科本文转载自微信公众号「陈淑仪」,可通过以下二维码关注。转载本文请联系陈淑仪公众号。
