使用 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 template dashboard utilizes Azure Monitor metrics, enabling consolidated viewing of data from all Service Bus instances.

Azure Service Bus 模板仪表盘利用 Azure Monitor 指标,能够整合查看所有 Service Bus 实例的数据。

Morley 说:“那时,Grafana 开始在整个业务部门得到更广泛的应用。”“人们开始将其作为主要的仪表盘解决方案来显示遥测数据。”

除了可视化功能,Grafana OSS 还帮助改善了延迟问题。在使用 Grafana 之前,团队需要 10 到 15 分钟才能访问排查问题所需的指标。使用 Grafana 后,团队能够利用 Azure 改进后的数据采集管道和内置遥测功能,并战略性地将端到端延迟目标设定为一分钟。 

鉴于 Grafana OSS 的益处,ASOS 对该平台的采用迅速增长。他们在多个地理区域运行 Grafana 以实现地理弹性,并管理着自己的大规模 Graphite 实例。随着采用范围扩大,工程团队意识到他们希望继续利用 Grafana 的价值,但又不想承担更新和维护(特别是时间序列数据存储)的开销。因此,他们在 2022 年 1 月决定迁移到 Grafana Cloud。

Morley 说:“[Grafana Cloud] 意味着我们可以专注于可观测性——最大限度地利用平台的功能——而无需自己运行它。”

访问Grafana 企业版插件是 ASOS 从 Grafana OSS 迁移到 Grafana Cloud 的另一个关键优势。 

Morley 说:“当我们自己运行 Grafana 时,我们需要查询 New Relic 和 ServiceNow,所以我们构建了一些内部插件版本——但所有这些都伴随着维护的开销。”“企业版插件的好处之一是我们可以弃用 [我们现有的插件],直接利用 Grafana Cloud 的服务,从而减少我们需要拥有和维护的代码。”

Grafana Cloud 如何帮助 ASOS 缩短 MTTR、降低成本及其他益处

迁移到 Grafana Cloud 后,ASOS 工程团队知道他们能够以所需的规模获取所需的实时洞察。 

团队受益尤为明显的一个方面是使用了 Grafana Cloud 指标——Grafana Cloud 中由 Grafana Mimir 提供支持的完全托管、高度可扩展的指标服务——作为 Prometheus 数据存储。 

在实施 Grafana Cloud 指标之前,团队使用 Azure Container Insights for AKS 收集 Prometheus 指标并将其存储在 Azure Log Analytics 中。但他们注意到,当从 Grafana 对 Azure Monitor 和 New Relic 数据源进行大量查询时,有时会达到速率限制,导致仪表盘出现超时错误。因此,团队进行了调整,转而将 Prometheus 指标发送到 Grafana Cloud 指标。

同时,他们还开始预聚合常用数据点,将数百万条记录转换为少量 Prometheus series。这些努力相结合,显著降低了超时风险,并缩短了团队的 MTTR。 

ASOS 首席站点可靠性工程师 Adam Watson 说:“对于所有的支持团队——重大事件团队和应用支持团队——过去一年我们的焦虑感都减轻了许多。”“我认为这很大程度上归功于我们对服务有了更好的理解,遥测数据更容易获取,并且能够快速找到正确的团队。”

除了维护正常运行时间外,Grafana Cloud 指标还帮助团队降低了成本。

Morley 说:“以 Prometheus 格式存储这些数据更便宜。”“因此,通过将部分日志转换为指标并将其数据迁移到 Grafana Cloud 指标,我们节省了大量资金。” 

Grafana Cloud 中的 Kubernetes 监控是 ASOS 的另一个宝贵服务。特别是开箱即用的可视化和预配置仪表盘,使得团队能够更快地分析数据,并深入了解其在 Azure Kubernetes Service 中运行的约 123 个 Kubernetes 集群的健康状况。它还有助于集中和统一公司与 Kubernetes 相关的可观测性工作;在采用之前,团队是手动构建自己的仪表盘来孤立地监控他们的集群。

Morley 说:“现在我们有了一个中心仪表盘,可以用模板化解决方案监控任何人的集群——这非常有效。”

同时,Grafana 支持的广泛数据源继续支撑着公司的整体可观测性策略。使用 New Relic、Prometheus、Azure Monitor、Azure Data Explorer 和其他关键系统的数据源,为 ASOS 在数据可视化方面开启了无限可能。 

Morley 说:“那种能够从多个数据源消费遥测数据并进行可视化的能力——这是一个非常强大的功能。”“无论我们想要什么数据源,我们都可以对其进行可视化。”

展望未来:Grafana SLO

SLOs at a glance: Our RAG dashboard condenses Grafana SLO data, providing a clear overview of estate health and error budget status.

SLOs 概览:我们的 RAG 仪表盘整合了 Grafana SLO 数据,清晰地展示了环境健康状况和错误预算状态。

至于 ASOS 及其可观测性之旅的下一步,团队正开始利用 Grafana SLO——这个 Grafana Cloud 应用帮助工程团队快速设置服务等级目标。最终目标是利用 Grafana SLO 框架的两个组成部分——SLOs 和 SLIs——创建一个主要围绕错误预算构建的告警系统。 

Watson 说:“我们想通过 Grafana SLO 使用一些燃尽率告警,并将它们放在一个大屏幕上,让所有人都能看到。” 

Morley 补充道:“我们还想解决因试图监控过多信号而导致的告警疲劳问题。”“转向采用基于 SLI 和错误预算的方法,对我们的团队来说将非常有益。” 

部署 Grafana SLO 后,ASOS 团队希望专注于最重要的事情:可靠性和提供积极的用户体验。 

Morley 说:“我们始终致力于使过程尽可能完善。”“我们的团队在那里发出声音,并帮助构建最优质的产品。”

ASOS logo
行业
零售/电子商务
公司规模
3,000+
总部
英国伦敦