业务实时监控服务

业务实时监控服务 (Application Real-Time Monitoring Service, 简称ARMS) 是一款阿里云APM类监控产品。用户可以基于该产品的前端,应用,或业务自定义监控,快速构建实时的业务监控能力。

立即购买 联系销售

概述

业务实时监控服务 (Application Real-Time Monitoring Service, 简称ARMS) 是一款阿里云APM类监控产品。您可以基于该产品的前端、应用或业务自定义监控,迅速便捷地构建实时响应的业务监控能力。


产品优点

一站式多功能监控平台

  • 应用性能和异常监控:具有对分布式应用进行性能异常监控和调用链路查询的APM能力。

  • 前端体验监控: 按地域、渠道、链接等多维度实时反应用户页面浏览情况。

  • 业务深度定制监控:可按需深度定制具备业务属性的实时监控报警和大盘。

  • 统一报警和报表平台:集自定义监控、前端监控、应用监控为一体的统一报警和报表平台。

产品详情

业务实时监控服务(Application Real-Time Monitoring Service,简称 ARMS)是一款阿里云应用性能管理(APM)类监控产品。借助本产品,您可以基于前端、应用、业务自定义等维度,迅速便捷地为企业构建秒级响应的业务监控能力。


功能

实时高效面向分布式应用的应用监控

  • 应用拓扑的自我发现:通过对RPC调用信息进行动态分析、智能计算,自动生成分布式应用间调用关系。

  • 常用诊断场景的指标下钻分析:根据应用响应时间、请求数、错误率等指标下钻分析,按应用、事务、数据库多维度查看。

  • 异常事务和慢事务捕获:基于调用事务(trace)的超时和异常分析,有效自定关联到对应的接口调用如SQL,MQ等。

  • 事务快照查询:智能收集基于调用链(trace)的问题事务,通过排查详细明细数据,掌握异常或错误来源。

针对用户体验监控的前端监控

  • 高时效性:实时感知用户实际访问网站的响应时间和错误率。

  • 页面异常监控:针对应用大量的异步数据调用的性能和成功率进行监控和诊断。

  • 多维度监控分析:基于地区、运营商、浏览器等多维的用户访问速度和错误分析。

支持业务监控深度定制的自定义监控

  • 丰富的数据源:支持各类实时数据源如日志,SDK,MQ,Loghub 等。

  • 灵活的实时计算和存储编排:支持用户根据指定维度和计算方式自行编排实时计算和存储方式。

  • 灵活的报警和大盘对接:监控数据集可快速对接ARMS报警和大盘平台,以提供各类场景的监控能力。

统一的报警和大盘平台

  • 灵活的报警配置功能。

  • 支持基于各类数据集的自定义同比环比、指标维度的报警策略配置。

场景

Java 应用监控和诊断方案

我们采用基于 ARMS 的应用监控方案来解决分布式 Java 应用监控中的业务痛点。

业务痛点

互联网业务的高速发展带来了日益增长的流量压力,业务逻辑也日趋复杂,传统的单机应用已经无法满足需求。越来越多的网站逐渐采用了分布式部署架构。同时,随着 Spring Cloud/Dubbo 等基础开发框架的不断成熟,越来越多的企业开始对网站架构按照业务模块进行垂直拆分,形成了更适合团队协同开发、快速迭代的微服务架构(Microservice Architechture)。

分布式的微服务架构在开发效率上具备先进性,但给传统的监控、运维、诊断技术带来了巨大挑战。以淘宝网(www.taobao.com)践行分布式架构与微服务实践的过程为例,遇到的主要挑战有:

问题定位难:客服人员接到用户反馈商品购买出现问题后,会交由技术人员排查解决。而微服务分布式架构中的一个网站请求通常要经过多个服务/节点后返回结果。一旦请求出现错误,往往要在多台机器上反复翻看日志才能初步定为问题,对简单问题的排查也常常牵扯到多个团队。

瓶颈发现难:当用户反馈网站出现卡顿现象,很难快速发现瓶颈在哪里。有可能是用户终端到服务端的网络问题、服务端负载过高导致响应变慢,或是数据库压力过大。即使定位到了导致卡顿的环节,也很难快速定位到代码层面的根本原因。

架构梳理难:在业务逻辑变得逐渐复杂以后,很难从代码层面去梳理某个应用依赖了哪些下游服务(数据库、HTTP API、缓存),以及被哪些外部调用所依赖。业务逻辑的梳理、架构的治理和容量的规划(例如“双十一”促销活动的准备过程中,需要为每个应用准备多少台机器)也变得更加困难。

基于 ARMS 的应用监控方案

ARMS 提供的应用监控功能,脱胎于阿里巴巴内部的分布式跟踪与监控系统(内部称为“鹰眼系统”),可以在不修改任何现有代码的情况下,帮助网站开发人员和运维人员解决下述问题:

调用拓扑图:您可以在 ARMS 中看到应用的调用关系拓扑图。例如应用被哪些服务依赖、依赖了哪些下游服务等。如图所示,我们可以清楚地看到图中被 ARMS 监控的应用依赖了 Redis、MySQL 数据库和外部的一些 HTTP 服务,而对 MySQL 数据库的依赖是瓶颈所在(平均耗时超过 1700 ms)。

慢服务/SQL 报表:该应用的 SQL 分析报表,可以清楚地定位到具体的慢 SQL、慢服务。

分布式调用链查询:点击对应的的接口快照,可以找到一条包含该 SQL 调用的请求,并能看到该方法的调用堆栈,进而定位到代码级别的问题。

无论从全局视角还是单个调用视角,ARMS 能够全方位解决您在分布式 Java 应用监控领域的痛点。ARMS 的应用监控可搭配前端监控、业务监控使用,从业务关键指标到用户体验,再到应用性能,为您的站点全方位保驾护航。

用户体验监控场景

关于用户体验的业务痛点

用户访问我们的业务时,整个访问过程大致可以分为三个阶段:页面生产时(Server 端状态)、页面加载时和页面运行时。为了保证线上业务稳定运行,我们会在 Server 端对业务的运行状态进行各种监控。现有的 Server 端监控系统相对已经很成熟了,而页面加载和页面运行时的状态监控一直比较欠缺。主要原因是对于前端监控的重视不足,认为服务端的监控可以部分替代前端监控,这种想法就导致系统在线上运行时,我们无法感知用户访问系统时的具体情况,因而定位线上用户偶现的前端问题变得非常困难。

业务痛点

定位性能瓶颈困难:当用户反馈页面加载较慢时,很难快速发现性能瓶颈在哪里,是网络问题、资源加载问题,还是页面 DOM 解析问题。是和用户所在的省份、国家有关系,还是和用户的浏览器、设备有关系。这些问题都无法快速复现并定位到具体原因。

无法获知用户访问时的报错情况:一个系统上线之后,访问时的大量 JS 报错导致用户无法正常使用。如果我们无法及时获知,是否会流失大量用户;如果用户反馈页面的使用情况,我们能否第一时间复现用户的使用场景;能否知晓用户遇到的详细报错信息而快速修复,这些都是开发人员目前遇到的难点。

API 异步调用情况未知: API 调用返回的 HTTP 状态码均为 200 并不能代表接口完全正常,如果业务逻辑出现异常,我们能否有所感知;如果 API 返回全部正常,但整体的耗时较长,那么如何了解全局概况并进行优化呢;在这些都未知的情况下,我们就无法发现问题,也无法提升用户体验。

基于 ARMS 的前端监控方案

前端监控功能基于 ARMS 平台提供的海量实时日志分析和处理服务,对当前线上所有真实用户的访问情况进行监控,从而解决以上问题。

通过应用总览,发现异常问题:ARMS 前端监控中可以看到应用总览信息,包括应用的满意度、JS 错误率、访问速度、API 请求成功率及 PV 信息的情况,其中 JS 错误率均值为 3.78%,相较上周同比上涨 56.25%。

通过性能数据趋势/瀑布图:在访问速度页面,可以看到关于页面性能的具体指标数据及对应的加载瀑布图,您可以根据具体数据来定位性能瓶颈。

通过JS 错误率/错误聚类查看页面稳定性:在 JS 稳定性页面,可以看到错误率从高到低的页面排行及错误聚类排行。您可以直观地看到哪些页面的 JS 错误率较高,以及哪些错误出现次数最多。

通过API请求分析API访问情况:在 API 请求页面,可以看到 API 的成功率及耗时数据,全面掌握接口情况。

访问明细查看:单击明细可进入访问明细,查看具体的访问情况。例如,根据报错的 File、Stack、Line、Col 信息定位错误。

零售行业实时监控方案

在这个应用场景案例中,某服装行业龙头公司采用基于 ARMS 的混合云解决方案,搭建了零售业务实时监控系统。

业务痛点

监控平台使用传统的商业 OLAP 数据库,许可证费用高昂。

监控平台在横向扩展和实时性方面难以满足业务要求。

基于 ARMS 的零售行业监控方案

基于ARMS的业务监控解决方案

交易日志通过 Logtail Agent 实时上传到阿里云 Loghub 日志服务。

ARMS 业务实时监控服务对接 Loghub 进行计算和存储,并通过自带交互大盘实时分析和查看销售业务数据。其中:

计算编排和存储:从日志中抽取每条交易的详细数据,包括总价、件数,按照交易发生地点、销售公司名称和客户会员信息等多个维度进行聚合。

交互展示:按照地域、门店、会员、类目等维度展示销售状态和各类下钻场景分析。

ARMS 数据输出到下游 DataV 数据可视化组件进行大屏展示。

基于 ARMS 的 IT 运维监控系统的业务价值

令 TCO 分析成本成百倍下降,满足高时效性的多维度分析,帮助您实时掌控前线销售情况,让您能够以销售策略和库存配置策略及时应对挑战。

监控展示方案满足多场合需求:DataV 的酷炫大盘用于监控室总体展示,ARMS 的交互大盘用于深度排查问题。

使用入门

应用监控

应用监控使用入门分为三个步骤

  • 下载应用监控探针包;

  • 安装探针包;

  • 启动应用,开始监控。

前端监控

前端监控使用入门分为三个步骤

  • 负载前端监控代码片段;

  • 粘贴代码片段到前端页面中;

  • 发布页面,开始监控。

自定义监控

自定义监控分为四个步骤

  • 定义数据源

  • 定义实时数据规则

  • 定义数据集聚合规则

  • 定制报表和监控

常见问题

1. ARMS 应用监控目前支持哪些语言?将来的计划是什么样的?

ARMS 应用监控目前支持 Java 语言,计划支持 PHP 和 C# 语言,且即将提供 OpenAPI 供其他语言开发者定制接入。

2. ARMS 前端监控都支持哪些地域?

目前,前端监控在中国大陆范围内只支持杭州地域,在国际范围内只支持新加坡地域。由于前端监控的统计数据来自公网,地域化的需求很小,所以暂无支持除杭州和新加坡以外地域的计划。在其他地域开通阿里云服务的客户,可直接使用上述两个区域的前端监控服务,性能和功能不会受到影响。

3. ARMS 自定义监控如何扩容?

如果通过界面提示发现 ARMS 自定义监控由于计算资源不足而需要扩容,请联系 ARMS 在线客服进行手动扩容。理论上,扩容仅需数分钟即可完成。

4. ARMS 自定义监控的实时计算引擎和列存储能直接暴露给用户使用吗?

不能。用户仅可通过 ARMS 提供的用户界面和 OpenAPI 的方式来定制监控数据和获取结果。主要原因是 ARMS 的实时计算和列存储在组装上进行过高度定制优化,所以并不适合直接暴露某个单独模块给用户使用。如果用户有实时计算和列存储的特别需求,请开通其他阿里云产品服务,例如流计算、表格存储等。