继续我们的 Prometheus 用户访谈系列,Presslabs 的 Mile Rosu 讲述了他们的监控历程。
您能否介绍一下您自己以及 Presslabs 的业务?
Presslabs 是一个面向出版商、企业品牌和数字代理机构的高性能托管式 WordPress 托管平台,旨在为他们的网站访问者提供 100% 无缝的体验。
最近,我们为核心产品开发了一个创新组件——WordPress 商业智能。用户现在可以通过一个全面的仪表盘获取实时、可操作的数据,以支持缩短问题到部署的流程并持续改进他们的网站。
我们支持每月高达 20 亿页面浏览量的无缝交付,运行在完全专注于为高要求客户提供托管式 WordPress 托管的 100 台机器集群上。
我们目前正致力于为全球的 WordPress 出版商带来最佳体验。在这段旅程中,Kubernetes 正在帮助我们走向高可用性 WordPress 托管基础设施的未来标准。
在使用 Prometheus 之前的监控经验是怎样的?
我们早在 2009 年就开始构建我们的 WordPress 托管平台。当时,我们使用 Munin,一个开源的系统、网络和基础设施监控工具,它能执行我们所需的所有操作:暴露、收集、聚合、告警和可视化指标。虽然它运行良好,但每分钟收集一次、每 5 分钟聚合一次的速度对我们来说太慢了,因此它产生的输出不足以准确分析我们平台上的事件。
Graphite 是我们的第二个选择,它解决了 Munin 的时间挑战。我们在其中加入了 collectd 来暴露指标,并使用 Graphite 进行收集和聚合。
然后我们开发了 Viz,这是一个我们用 JavaScript & Python 编写的可视化和告警工具。然而,我们停止了积极使用这项服务,因为维护它需要大量工作,而 Grafana 从其第一个版本开始就很好地替代了它。
自 2017 年下半年以来,我们的 Presslabs 平台进入了大规模转型阶段。其中一个主要变化是我们迁移到 Kubernetes,这意味着需要一个高性能的监控系统。就在那时,我们决定采用 Prometheus,自那时起一直在使用它,并计划将其作为提取和暴露指标的核心组件,整合到新平台的所有服务中。
为什么决定考虑使用 Prometheus?
我们是在 2014 年巴塞罗那的 Velocity Europe 会议上与 Soundcloud 的工程师团队交流后开始考虑 Prometheus 的。他们所介绍的优势足以吸引我们尝试 Prometheus。
你们是如何过渡的?
我们仍在过渡过程中,因此我们并行运行两个系统——Prometheus 和 Graphite-collectd 组合。对于客户端仪表盘和我们的核心服务,我们使用 Prometheus;然而,对于客户端网站,我们仍然使用 Graphite-collectd。在这两者之上,我们都使用 Grafana 进行可视化。
Prometheus 的文档、Github Issues 和源代码是我们集成 Prometheus 的主要资源;当然,StackOverflow 也为这个过程增添了一些趣味,解答了我们很多的疑问。
Prometheus 唯一的问题是我们无法为某些指标获取长期存储。我们的托管基础设施平台需要存储页面浏览量等使用指标至少一年。然而,自从我们使用 Prometheus 以来,其生态系统已经有了很大改进,我们还需要测试可能的解决方案。
切换后您看到了哪些改进?
切换到 Prometheus 后,我们注意到资源使用量相比之前使用过的任何其他方案都显著减少。此外,由于与 Kubernetes 的自动集成,安装也非常方便,节省了大量时间。
您认为 Presslabs 和 Prometheus 的未来会是怎样的?
我们对 Prometheus 有很大的计划,正在努力将我们目前使用的 Prometheus Helm chart 在新基础设施上替换为 Prometheus Operator。这项实施将实现平台客户的隔离,我们将为有限数量的网站分配一个专用的 Prometheus 服务器。我们已经开始这项工作,作为我们将 WordPress Kubernetes 化努力的一部分。
我们还在努力将 WordPress 指标导出为 Prometheus 格式。Grafana 将会继续使用,因为它与 Prometheus 配合得很好,可以满足可视化的需求。