Presslabs 访谈

2018 年 8 月 23 日作者 Brian Brazil

我们继续对 Prometheus 用户的系列访谈,本期由 Presslabs 的 Mile Rosu 来谈谈他们的监控之旅。

您能介绍一下您自己以及 Presslabs 的业务吗?

Presslabs 是一个高性能的 WordPress 托管平台,专为出版商、企业品牌和数字机构服务,致力于为他们的网站访客提供 100% 全天候的无缝体验。

最近,我们在核心产品中开发了一个创新组件——WordPress 商业智能。用户现在可以在一个全面的仪表盘中获取实时的、可操作的数据,以支持从发现问题到部署的快速流程,并持续改进他们的网站。

我们拥有一个由 100 台机器组成的集群,完全专用于为要求严苛的客户提供 WordPress 托管服务,每月支持高达 20 亿次页面浏览量的无缝交付。

我们目前的使命是为全球的 WordPress 发布者带来最佳体验。在这段旅程中,Kubernetes 正在帮助我们迈向高可用性 WordPress 托管基础架构的新标准。

在使用 Prometheus 之前,您的监控体验是怎样的?

我们从 2009 年开始构建我们的 WordPress 托管平台。当时,我们使用 Munin,一个开源的系统、网络和基础设施监控工具,它能完成我们需要的所有操作:指标暴露、收集、聚合、告警和可视化。尽管它表现不错,但每分钟收集一次、每 5 分钟聚合一次的速度对我们来说太慢了,因此它生成的输出不足以让我们正确分析平台上的事件。

Graphite 是我们的第二个选择,它解决了 Munin 的时间延迟问题。我们加入了 collectd 来暴露指标,并使用 Graphite 进行收集和聚合。

然后我们用 JavaScript 和 Python 编写了一个名为 Viz 的工具,用于可视化和告警。然而,我们后来停止了积极使用这项服务,因为维护它的工作量很大,而 Grafana 从第一个版本开始就很好地替代了它。

Presslab's Viz

自 2017 年下半年以来,我们的 Presslabs 平台进入了一个大规模的转型阶段。其中一个主要变化是我们迁移到了 Kubernetes,这意味着需要一个高性能的监控系统。就在那时,我们下定决心使用 Prometheus,并一直沿用至今,计划将其作为提取和暴露指标的核心组件,整合到我们新平台的所有服务中。

你们为什么决定研究 Prometheus?

我们在 2014 年巴塞罗那的 Velocity Europe 大会上,与 Soundcloud 的一个工程师团队交流后,开始考虑使用 Prometheus。他们所展示的优势非常有说服力,足以让我们尝试一下 Prometheus。

你们是如何过渡的?

我们目前仍处于过渡过程中,因此我们并行运行着两个系统——Prometheus 和 Graphite-collectd 组合。对于客户仪表盘和我们的核心服务,我们使用 Prometheus,但对于客户网站,我们仍在使用 Graphite-collectd。在这两个系统之上,我们都使用 Grafana 进行可视化。

Presslab's Redis Grafana dashboards

Prometheus 的文档、Github issues 和源代码是我们集成 Prometheus 时的首选资源;当然,StackOverflow 也为这个过程增添了一些乐趣,满足了我们很多的好奇心。

Prometheus 唯一的问题是,我们无法对某些指标进行长期存储。我们的托管基础设施平台需要将页面浏览量等使用指标至少存储一年。不过,自从我们开始使用 Prometheus 以来,其生态系统已经有了很大改善,我们还需要测试一些可能的解决方案。

切换后你们看到了哪些改进?

自从切换到 Prometheus 后,我们注意到与之前使用的任何其他替代方案相比,资源使用量显著下降。此外,它安装简便,与 Kubernetes 的自动集成节省了大量时间。

您认为 Presslabs 和 Prometheus 的未来会是怎样的?

我们对 Prometheus 有宏大的计划,我们正在努力用 Prometheus Operator 替换我们目前在新基础设施上使用的 Prometheus Helm chart。这一实现将为平台客户提供隔离,因为我们将为有限数量的网站分配一个专用的 Prometheus 服务器。作为我们将 WordPress 容器化(Kubernetizing)工作的一部分,我们已经在着手这项工作。

我们还在努力以 Prometheus 格式导出 WordPress 指标。Grafana 会继续使用,因为它与 Prometheus 珠联璧合,能很好地解决可视化需求。