从 Prometheus 到 ARMS:我们如何在阿里云上简化多层应用的可观测性
Source: Dev.to
如果你曾因调试跨微服务的延迟峰值而失眠,你就会知道可观测性不仅仅是指标——它关乎上下文。
几个月来,我的团队在阿里云上使用 ACK(Alibaba Cloud Container Service for Kubernetes)上的 Prometheus 运行一个多层 SaaS 应用。它一直运行良好——直到扩展需求、工具碎片化以及告警疲劳逐渐显现。
我们最近迁移到了 Application Real‑Time Monitoring Service (ARMS),阿里云的托管可观测性平台。结果如何?事件解决速度提升 40 %,运维开销大幅降低,并且能够在整个技术栈上获得统一视图。
为什么我们触碰到 Prometheus 的限制
Prometheus 在指标方面非常出色——但在生产级、多环境的部署中,我们不断碰壁:
- 运维负担 – 在各集群间管理高可用 Prometheus、存储、保留策略以及抓取配置占用了大量工程师时间。
- 缺乏端到端可视化 – 指标在 Prometheus,日志在另一个系统,追踪在再另一个系统。将前端响应变慢与数据库查询慢关联起来需要手动侦查。
- 扩展不可预测 – 在流量高峰时我们要么过度配置(浪费资金),要么面临指标缺失的风险。
- 噪声大、上下文缺失的告警 – “CPU 高”或“API 错误率上升”,却不知道 哪个服务 或 哪个依赖 是根本原因。
我们需要一种能够在同一位置提供 指标 + 追踪 + 日志,且维护工作最小化的方案。
为什么选择 ARMS
ARMS 不仅仅是 “Prometheus‑as‑a‑service”。它是一个 统一的可观测性平台,支持:
- 完整的 Prometheus 远程写入/拉取兼容性
- 自动发现云资源(Kubernetes 工作负载、负载均衡器、托管数据库等)
- 内置分布式追踪(支持 Java、Python、Go 等语言的自动注入)
- 与阿里云服务深度集成——无需额外代理或复杂网络配置
最重要的是:我们不必放弃已有的投入。ARMS 在摄取我们现有的 Prometheus 指标的同时,还加入了底层云基础设施的更深层次上下文。
我们的迁移策略:安全且渐进
我们没有“一键切换”。可观测性对业务至关重要。以下是我们的分阶段方法:
- Parallel ingestion – 配置 ARMS 通过 Prometheus remote write 接收指标——相同的 exporter、相同的指标。
- Validation period – 同时运行两个系统两周,比较仪表盘、告警准确性和数据完整性。
- Gradual cutover – 将 Grafana 仪表盘切换为使用 ARMS 作为数据源,然后迁移告警规则。
- Decommission – 确信后,缩减自管的 Prometheus 集群并回收资源。
零停机。风险最小。
💡 Pro tip: 小技巧:先使用 ARMS 的 Prometheus Monitoring 模式——如果你已经在使用 Prometheus,这是最温和的上手方式。
Observability Across All Tiers—Finally
我们的技术栈涵盖:
- 前端(CDN + OSS 上的静态资源)
- API 网关(通过应用负载均衡器)
- 无状态微服务(在 ACK 上)
- 缓存层(托管 Redis)
- 持久存储(托管 PostgreSQL)
在使用 ARMS 之前,回答 “为什么结账慢?” 需要在三个以上的工具之间切换。
现在,在 单一的 ARMS 仪表盘 中,我们可以看到:
- 前端性能(真实用户指标)
- API 延迟和错误率
- 带有实时追踪的服务依赖图
- 自动关联到调用服务的慢查询数据库
这已经不再是“收集数据”,而是 理解行为。
重要成果
- 40 % 的平均解决时间(MTTR)降低
- 减少 60 % 用于管理可观测性基础设施的时间
- 警报更少但 信号更强(带有服务级别上下文)
- 更快的入职——新工程师通过 ARMS 探索系统,而不是部落知识
如果您正在考虑类似的迁移
- 使用 ARMS 的 Prometheus‑compatible endpoint,避免配置重写。
- 启用 Application Monitoring 进行自动探针——只需添加少量 JVM 参数或 SDK 调用。
- 设置 RAM roles(Alibaba Cloud 的 IAM),实现安全、免凭证访问。
- 仍然需要推送自定义指标吗?ARMS 支持 OpenTelemetry 和 Prometheus 客户端库。
最终思考
这不仅仅是一次工具更换——它标志着从 被动监控 到 主动洞察 的转变。通过采用托管的、云原生的可观测性平台,我们重新拥有了周末,并且把 SLO 控制在可管理的范围内。
如果你在 Kubernetes 上运行 Prometheus 并且感受到扩展的痛点,也许是时候探索统一可观测性平台能为你的团队带来什么——无论你使用哪家云提供商。