利用 Grafana Cloud 减少 MTTR:ASOS 可观察性堆栈内部
在线时尚和美容零售商 ASOS 拥有超过 2300 万活跃的全球客户——有些人可能正在寻找一双完美的鞋子参加目的地婚礼,另一些人则在寻找必备的复古连衣裙。但无论他们的购物清单上有什么,所有 ASOS 客户都在寻找并期望获得无缝的在线零售体验。
为了反复提供这种体验,ASOS 工程团队依靠Grafana Cloud 实现实时可观察性。
“我们绝对能够在事件发生时做出反应,”ASOS 首席首席工程师 Dylan Morley 说。“我们为许多面向客户的旅程设置了警报——这意味着客户将在我们的网站上执行的常见旅程。如果任何这些旅程没有按预期工作,我们的第一线支持和负责为这些旅程提供支持的软件的平台团队都会收到警报。一旦出现问题,我们就能立即知道。”
此外,Grafana Cloud 使 ASOS SRE 团队能够在其复杂的面向微服务的环境中获得所需的端到端可见性。
“基于微服务,我们在今年年初存在一些可观察性差距,我们的目标是弥合这些差距,即一个系统如何移交给另一个系统,”ASOS 的站点可靠性工程师 Fahri Ulucay 说。使用 Grafana Cloud,“这是我们团队能够提供的一件事——对整个不同系统中订单和信息流程的整体视图。”
如今,大约 800 名 ASOS 工程师使用 Grafana 仪表盘。除了减少 MTTR 之外,Grafana Cloud 还帮助 ASOS 以多种方式提升了其可观察性策略——从使用现成的Kubernetes 监控 仪表盘节省时间到使用Grafana Cloud 指标 降低成本。
但是,要完全掌握 ASOS 从 Grafana Cloud 中获得的益处——以及未来预计会获得的益处——了解他们的出发点非常有帮助。
为什么 ASOS 从 Grafana OSS 迁移到 Grafana Cloud
在 2015 年从本地 Windows 环境迁移到 Microsoft Azure 之后,ASOS 工程团队在可扩展性方面遇到了一些可观察性方面的挑战。
他们将日志和指标存储在 Azure 存储帐户中,并使用多种开源工具聚合这些数据,以实现对其环境的集中视图。但是,Morley 解释说,当团队尝试响应网站上的事件时,他们会被延迟所拖累。
“问题有时会在我们尝试观察繁忙时段时出现——当很多人在系统上运行查询时,您会开始看到系统速度变慢,”他说。“随着我们的扩展和产生更多遥测数据,我们开始看到数据摄取的端到端延迟时间更长,因此可以对其进行查询。”
为了解决这一挑战,并获得他们正在寻找的近乎实时的可观察性,该团队在 2017 年转向了 Grafana OSS。他们首先选择 Grafana,因为 ASOS 的性能测试团队已经使用它来进行数据可视化。更重要的是,Grafana 支持如此广泛的数据源——其中一个值得注意的是适用于 Azure Monitor,这使工程团队能够获取他们在 Azure 中的所有遥测数据并在 Grafana 中对其进行可视化。
Azure Service Bus 模板仪表盘利用 Azure Monitor 指标,可以集中查看来自所有 Service Bus 实例的数据。
“在那时,Grafana 开始在整个业务中得到更广泛的使用,”Morley 说。“人们开始将其作为显示遥测数据的首要仪表盘解决方案。”
除了可视化之外,Grafana OSS 还帮助改善了延迟问题。在 Grafana 之前,团队可能需要 10 到 15 分钟才能访问解决问题所需的指标。使用 Grafana,团队能够利用 Azure 改进的摄取管道和内置遥测功能,并战略性地实施一分钟的端到端延迟目标。
鉴于 Grafana OSS 的优势,ASOS 对该平台的采用迅速增长。他们在多个地理区域运行 Grafana 以实现地理冗余,并管理着自己的大型 Graphite 实例。随着采用的增长,工程团队达到了一点,他们希望继续利用 Grafana 的价值,而无需更新和维护它——尤其是时间序列数据存储。因此,在 2022 年 1 月,他们决定迁移到 Grafana Cloud。
“[Grafana Cloud] 意味着我们可以专注于可观察性——充分利用该平台——而无需运行它,”Morley 说。
访问Grafana 企业插件 是 ASOS 从 Grafana OSS 迁移到 Grafana Cloud 的另一个关键优势。
“当我们自己运行 Grafana 时,我们需要查询 New Relic 和 ServiceNow,因此我们构建了一些插件的内部版本——但这都带来了维护开销,”Morley 说。“企业插件的优势之一是我们能够弃用[我们现有的插件],只需利用 Grafana Cloud 产品,并且需要拥有和维护的代码更少。”
Grafana Cloud 如何帮助 ASOS 减少 MTTR、降低成本等等
随着转向 Grafana Cloud,ASOS 工程团队知道他们将能够按需获得所需的实时见解。
团队特别受益的一种方式是使用 Grafana Cloud 指标——Grafana Cloud 中完全托管、高度可扩展的指标服务,由Grafana Mimir 提供支持——作为 Prometheus 数据存储。
在实施 Grafana Cloud Metrics 之前,团队一直使用 Azure Container Insights for AKS 收集 Prometheus 指标并将它们存储在 Azure Log Analytics 中。但他们注意到,当他们从 Grafana 向 Azure Monitor 和 New Relic 数据源发送大量查询时,有时会遇到速率限制,这会导致仪表板出现超时错误。因此,团队改变了策略,开始将 Prometheus 指标发送到 Grafana Cloud Metrics。
同时,他们还开始预先聚合常用数据点,将数百万条记录转换为少量 Prometheus 系列。这些努力相结合,显著降低了超时风险并减少了团队的 MTTR。
“对于所有支持团队——重大事件团队和应用程序支持团队——我们在过去一年中减少了焦虑,”ASOS 的首席站点可靠性工程师 Adam Watson 说。“我认为这在很大程度上是由于我们对服务的了解更加深入,遥测数据更容易获取,并且能够快速联系到正确的团队。”
除了保持正常运行时间外,Grafana Cloud Metrics 还帮助团队降低了成本。
“以 Prometheus 格式存储这些数据成本更低,”Morley 说。“因此,通过将一些日志偏移到指标并将这些数据迁移到 Grafana Cloud Metrics,我们能够节省大量资金。”
Grafana Cloud 中的 Kubernetes 监控是 ASOS 的另一项宝贵服务。特别是开箱即用的可视化和预配置的仪表板使团队能够更快地分析数据并深入了解其在 Azure Kubernetes Service 中运行的大约 123 个 Kubernetes 集群的运行状况。它还有助于集中和统一公司与 Kubernetes 相关的可观察性工作;在采用之前,各个团队正在孤立地手动构建自己的仪表板来监控其集群。
“现在我们有一个中央仪表板,可以使用模板解决方案监控任何人的集群——这非常有效,”Morley 说。
同时,Grafana 中广泛支持的数据源继续支撑着公司的整体可观察性策略。使用 New Relic、Prometheus、Azure Monitor、Azure Data Explorer 和其他重要系统的多个数据源,为 ASOS 在数据可视化方面打开了一个充满可能性的世界。
“能够拥有一个从多个数据源获取遥测数据的可视化工具——这是一个非常强大的功能,”Morley 说。“无论我们想要什么数据源,我们都可以对其进行可视化。”
展望未来:Grafana SLO
SLO 一览:我们的 RAG 仪表板浓缩了 Grafana SLO 数据,提供了清晰的资产健康状况和错误预算状态概述。
至于 ASOS 及其可观察性之旅的下一步计划,团队开始利用 Grafana SLO——Grafana Cloud 应用程序,可帮助工程团队快速设置服务级别目标。最终目标是使用 Grafana SLO 框架的两个组件——SLO 和 SLI——创建一个主要基于 错误预算 的警报系统。
“我们希望使用 Grafana SLO 中的一些消耗率警报,并将它们显示在大屏幕上,以便每个人都能看到,”Watson 说。
“我们还想消除尝试监控过多信号可能导致的警报疲劳,”Morley 补充道。“转向 SLI 和错误预算的方法对我们的团队来说将非常有益。”
随着 Grafana SLO 的实施,ASOS 团队希望专注于最重要的事情:可靠性和提供积极的用户体验。
“我们始终致力于使流程尽可能完善,”Morley 说。“我们的团队在那里真正发出声音并帮助构建最好的产品。”