Changelog

使用 Grafana Cloud 监控 Changelog 的网站性能

Gerhard Lazu 热爱基础设施、运营和维持系统运行。他甚至觉得探索和学习 Kubernetes 很有趣。在 Changelog 这家独立媒体公司,他怀着对分享软件开发者启发性内容的热情,将部分精力投入到作为一名网站可靠性工程师来维持系统运行。由于 Changelog 幕后团队只有少数几个人(亲切地称为 Team One),这是一份相当重要的工作。

Gerhard 和 Changelog 的整个团队都热情地专注于收听他们播客的开发者,这些播客包括 The Changelog、Go Time、JS Party 和 Ship It。2021 年 7 月,Gerhard 与 Grafana 产品副总裁 Tom Wilkie 坐下来,共同录制了一期 Ship It 播客,讨论了 Loki、Tempo、Grafana Cloud 以及可观测性不断发展的定义。在 Grafana 于 2020 年成为 Changelog 设置的一部分后,这段对话尤其令人感兴趣,当时 Gerhard 正在寻找一种 Kubernetes 原生监控解决方案,以便轻松了解 Changelog.com 的行为。

构建一个 Kubernetes 友好的监控和日志系统

当时,Team One 很难了解 Changelog.com 设置的运行状况。他们希望第一时间知道系统何时出现性能下降,并在问题影响用户体验之前快速识别和解决问题。由于网站有如此多的访客跨时区下载播客和互动内容,监控性能和识别正在发生的问题是重中之重。在他们现有的设置中,Gerhard 会收到团队成员发来的 Slack 消息,告知系统出现问题,然后不得不通过 Pingdom、Papertrail 和 Netdata 来查找原因。由于合成监控、日志和指标系统是分开的,解决一个问题可能需要几个小时。

几年前在构建一些 RabbitMQ 仪表盘时,Gerhard 就接触了 Grafana 和 Prometheus。“Grafana 和 Prometheus 非常容易上手,”他回忆道,“所以即使我当时对这些工具一无所知……开始构建仪表盘也超级简单。”他特别喜欢 Grafana 让这个过程变得如此直接明了。

尝试思考我的仪表盘想要表达什么,我希望它讲述的故事——对我来说,这是一个很好的方法。Grafana 让这件事变得很容易。

Gerhard Lazu, Changelog

因为构建仪表盘非常容易,Gerhard 很快就有了五六个有用的仪表盘。“你知道你第一次使用手机时就上手了吗?Grafana 就有点像那样,”他说。虽然这些仪表盘很有帮助,但随着 Alex Koutmos 的 prom_ex 加入,一切都得到了更好的集成,prom_ex 是一个 Elixir 库,使 Prometheus 指标和 Grafana 仪表盘在 Changelog.com 应用程序中成为了一等公民。在此之上,kube-prometheus-stack 还添加了更多集成和开箱即用的仪表盘,使团队能够立即注意到块存储(Block Storage)和 Kube Proxy 中的瓶颈。Grafana 和 Prometheus 提供了系统的可见性,而 kube-prometheus-stack 结合 prom_ex 提供了无缝集成。“大帐篷哲学——我喜欢这个信念,也喜欢这个原则,这正是吸引我的地方,”Gerhard 谈到 Grafana 时说,“它与所有这些数据源的良好集成,是一大优势。”

Changelog.com’s PromEx Ecto dashboard

Changelog.com 的 PromEx Ecto 仪表盘一览

使用 Grafana Cloud 无痛扩展

2020 年 12 月,Changelog 的团队通过他们的 Grafana 监控设置节省了相当多的时间。但由于 Team One 的大多数成员都是在业余时间改进 Changelog 的设置,所以他们花在管理监控上的每一秒都很重要。在将 Grafana Labs 的开源日志聚合工具 Grafana Loki 添加到他的监控设置后,Gerhard 对 Changelog.com 的设置获得了更好、更强大的可见性。但这同时也使得维护监控设置变得更加耗时。如果 Changelog 自己托管 Grafana、Prometheus 和 Grafana Loki,就需要定期进行维护和升级。

Changelog.com’s NGINX log-based web traffic dashboard

Changelog.com 基于 NGINX 日志的网络流量仪表盘一览


当 Grafana 为 Grafana Cloud 推出了永久免费套餐后,这非常适合 Gerhard 和他的团队。迁移到托管服务意味着 Changelog 可以保留他们强大的监控设置,并通过将升级、修复和维护工作交给 Grafana 来节省时间。

我们自己运行它没有意义。倒不是说很难,但只需要运行 Grafana Agent 会简单得多。你需要的就是这个。把所有东西发送到 Grafana Cloud,它就能正常工作。

Gerhard Lazu, Changelog

享受解耦的指标、合成监控和告警

Gerhard 和团队非常喜欢 Grafana Cloud 为他们提供的 Changelog.com 设置的可见性。该网站每周提供数 TB 的数据,大部分直接来自 CDN,Grafana Cloud 存储所有指标。将他们的指标和日志服务与其他系统完全解耦,让 Gerhard 非常安心。它更加可靠,因为即使他们的源站不可用,也不会影响监控。“我们知道指标和日志是安全的,我们可以随时访问它们,一切都很好,”Gerhard 说。最近,当 Changelog 改进了他们的 Fastly 设置,以便所有可以缓存的请求都可以存储陈旧副本时,一个 Grafana 仪表盘帮助可视化了 HTTP 响应延迟的差异。所有这些都可以在 Grafana Cloud 中查看并与整个团队共享。

Changelog’s Synthetic Monitoring Summary dashboard

Changelog 的合成监控摘要仪表盘一览


Changelog 团队的另一个巨大优势是 Grafana Cloud 内置的合成监控。合成监控探针让 Gerhard 从外部视角深入了解 Changelog.com 设置的运行状况。通过遍布全球的探针位置,他可以监控 Changelog.com 服务在世界各地用户的可用性、性能和正确性。现在,以前需要数小时才能解决的事件——甚至从未被检测到的事件——只需几分钟即可解决。例如,最近一个潜入生产环境的拼写错误导致后端 downtime 约 19 分钟。Grafana Cloud 在几秒钟内通过 Telegram 向 Gerhard 发送了告警。收到 Grafana Cloud 的告警后十分钟,Gerhard 就锁定了问题并进行了纠正。总的来说,Gerhard 表示,MTTR(平均修复时间)减少了约 3 倍。

Changelog’s Origin Synthetic Monitoring HTTP dashboards

Changelog’s Origin Synthetic Monitoring HTTP dashboards

Changelog 的源站合成监控 HTTP 仪表盘一览


使用 Grafana Cloud 后,他无需自己运行监控器并将其部署到世界各地,所有这些都得到了妥善处理。“即使 Grafana Cloud 的合成探针出现故障或性能下降,它们也会自动恢复,无需我们干预。这意味着我们少了一件要担心的事情,”Gerhard 说。

他还非常赞赏 Grafana Cloud 带来的强大的告警功能。通过将 Changelog.com 的告警与 Grafana 和 Telegram 集成,团队又多了一个告警渠道。“有时我们会收到过多的告警,但我们总能知道什么时候出了问题,”Gerhard 说。他们建立了冗余机制,以确保在 Changelog.com 基础设施出现问题时立即知晓。团队会收到多个通知,这提供了确认。“我喜欢我的冗余设置,”他说。因为当事情出错时,你需要一个可靠的保障。而有了 Grafana Cloud,他知道整个 Grafana 团队都在那里,一路支持他。

Changelog.com’s Alerts dashboard

Changelog.com 的告警仪表盘一览


如今,Gerhard 和 Changelog 团队正在 Grafana Cloud Pro 上运行他们的监控生态系统。Gerhard 不再为成本、升级或出现问题而烦恼。Changelog 的 Kubernetes 占用空间更小,而且他们不必担心每年升级设置时迁移数据的问题。“Grafana Agent 是我们唯一需要担心的集成,这真是太棒了,”Gerhard 说。他还估计团队现在有了大约 10% 的额外维护预算可以用于其他事情。

规划 Changelog.com 的未来之路

现在 Gerhard 花在维护监控和日志设置上的时间更少了,他能够以全新的方式思考 Changelog 的基础设施设置。因为指标和日志都在 Grafana Cloud 中处理,它们与主要的 IaaS 解耦,团队可以更大胆地迈步,更专注于重要的事情,例如迁移到多云设置。

我们在监控方面不依赖于我们的 IaaS。我们可以进行实验,这是一大优势。

Gerhard Lazu, Changelog

Gerhard 说,迁移到 Grafana Cloud 让一切变得更加灵活和易于访问,很多困难的事情也变得更简单了。那么团队下一步做什么呢?使用 slok/sloth 跟踪 Changelog.com 的服务级别目标,最后开始研究追踪。有了 Grafana Cloud,他可能会乐在其中。

Changelog logo
行业
软件与技术
公司规模
1 - 10 名员工
总部
休斯顿,德克萨斯州