从微信官方账号开始@陈树义,用最简单的语言分享我的技术见解。
第一次接触 Prometheus 去年,我工作了六年。但现在看来,工作了六年才知道 Prometheus 有点晚了,因为 Prometheus 真的很重要。个人感觉 Prometheus 在你 3-5 你应该知道,掌握一整套关于它的知识,最后你应该掌握:如何从零开始建立一个业务监控系统!
说到 Prometheus,大多数人可能不太清楚它是做什么的。即使知道它是做监控的,也不明白为什么要做监控。这其中涉及到许多原因,我想主要有下面两点原因。
首先,整体观点不够。许多开发学生长期在一线开发,仅限于自身开发的需要,不了解整个系统,不了解整个系统业务。只有当你这样做时leader 之后,你会更加关注系统的整体情况。如果你是 leader,你会发现业务监控系统有多重要(毕竟,你不想在半夜被电话吵醒,打开电脑解决问题~)
第二,缺乏工作经验。刚工作一两年的学生, Java 整个知识体系还不够全面。Prometheus 的监控知识更高级,自然会排在后面。
除上述两个主要原因外,还有一些其他原因,如:公司技术体系问题等。
言归正传,那 Prometheus 到底做什么,为什么要学 Prometheus 呢?
什么是 Prometheus?
Prometheus(普罗米修斯)是古希腊的神,名字是指「先见之明」。从它的名字可以看出,Prometheus 是做「先见之明」监控报警用途。维基百科简单写了它的功能:Prometheus is a free software application used for event monitoring and alerting(Prometheus 是用于监控和报警的免费软件)。
Prometheus 官网用「From metrics to insight」(指标洞察系统的含义)描述 Prometheus 的用途。
看到这里我们大概知道 Prometheus 实际上是一个数据监控解决方案,它可以帮助您简单快速地构建一个可视化的监控系统。 但这仍然有点抽象。让我举几个简单的例子来帮助你理解 Prometheus 到底能做什么?
对于运维人员来说,他们需要监控机器 CPU、使用内存和硬盘,以确保机器上应用的稳定性。
对于研发人员来说,他们关注异常指标的变化,以确保业务的稳定运行。
对于产品或运营,他们更关心产品层面,如参与者数量的增加和活动积分的分配。
对于上述功能,Prometheus 都能实现。Prometheus 可以根据收集到的数据实现报警功能。
比如运维希望在 CPU 达到80% 时,向值班运维人员发送电子邮件,产品希望在活动积分超过10万时发送报警电子邮件。这些可以通过 Prometheus 实现。
除数据收集和报警功能外,Prometheus 还有许多强大的功能,如:强 ProQL 查询,很多客户端库等。
因为 Prometheus 功能强大,施工成本低,所以现在越来越多的公司使用 Prometheus 作为数据监控的解决方案。
为什么要学 Prometheus?
对于一直在一线发展的学生来说,你可能只需要做好自己的需求,而不是 bug、顺利上线,你的任务就完成了。但如果你是 leader,所以你对整个业务系统负责,这个业务系统出了什么问题,都是你的责任。此时,您需要始终注意该系统是否正常运行。
对于流量不大的系统,几分钟的故障可能不会造成太大的损失。但对于淘宝、美团、字节跳动等巨无霸来说,停机 1 每分钟损失数百万!
所以弄清楚此时此刻系统的运行是否正常?各项业务指标是否超过阈值?这些问题是每个经验丰富的研发人员所需要关注的事情!
那么如何监控你的系统呢?如何知道系统是正常还是异常?甚至如何预测系统在未来可能会出现问题?Prometheus 就是这样一套数据监控解决方案。它可以让您随时控制系统的运行状态,快速定位问题位置,快速消除故障。
只要按照 Prometheus 如果我们一步一步地学习和部署,我们可以监控机器 CPU、使用内存等资源,Java 应用的运行情况以及业务各项指标的实时数据。
当然,有些公司会自己使用 Kafaka 收集监控数据并存储在 Hive 中,数据监控也可以通过页面聚合来实现。然而,这种解决方案需要开发人员掌握 Hive Hadoop 等大数据框架,前端显示有限。
而通过 Prometheus 可直接部署使用,并与 一起使用Grafana 配套使用可以呈现出非常多样化的图表配置。对于中小规模的团队来说,可以极大地减少成本,加快研发速度。
对个人而言,掌握 Prometheus 可以增加你当 leader 的竞争力。毕竟,如果一个研发人员不了解自己的系统运行,他该怎么办 leader,如何带领团队前进?
总结
对于工作多年的R&D人员来说,对自己负责的系统一定要清楚。单靠自信是不够的,必须使用功能强大的业务监控系统。Prometheus 作为领导者,凭借其完善的功能和大量的数据支持,我们可以以更低的成本实现业务监控。
参考资料
Prometheus - Monitoring system & time series database
普罗米修斯 - 维基百科,免费百科全书
本文转载自微信公众号「陈树义」,请注意以下二维码。转载本文请联系陈树义微信官方账号。