ARMS是一款阿里云应用性能管理(APM)类监控产品。一共提供三种监控,应用监控,前端监控,自定义监控。
服务开通,免费开通 ARMS 基础版后,可在 ARMS 控制台开通按量付费的监控服务。开通按量付费后,才可购买应用监控资源包。
应用监控是一款针对 Java 应用的性能管理(Application Performance Management,简称 APM)软件。无需修改任何代码,只需要在 Java 应用的启动脚本中挂载一个探针(ECS Agent),该探针就能够对 应用进行全方位监控,快速地定位出错接口和慢接口、重现调用参数、检测内存泄漏、发现系统瓶颈,从而大幅提升线上问题诊断问题的效率。
应用监控探针能够自动发现应用的上下游依赖关系。具体而言,该探针能够有效捕获、智能计算、自动展示不同应用之间通过RPC 框架(例如 Dubbo、HTTP、HSF 等协议)组成的调用链。
应用/实例调用信息
上报字段 | 描述 |
---|---|
响应时间 | 应用、实例调用的平均响应时间,或数据库操作的平均执行响应时间 |
请求数 | 应用、实例调用的请求调用次数,或数据库操作的执行次数 |
错误数 | 应用、实例调用的错误调用次数,或数据库操作中异常执行次数 |
概览
上报字段 | 描述 |
---|---|
请求数 | 应用、实例调用的请求调用次数,或数据库操作的执行次数 |
响应时间 | 应用、实例调用的平均响应时间,或数据库操作的平均执行响应时间 |
错误率 | (应用、实例调用的异常调用次数,或数据库操作的异常次数)/请求数 |
性能一览 | 柱状图与左 Y 轴为请求数统计,折线图与右 Y 轴为响应时间 |
SQL 分析
上报字段 | 描述 |
---|---|
SQL 调用统计 | 柱状图与左 Y 轴为数据库请求数统计,折线图与右 Y 轴为数据库响应时间 |
平均耗时 | 本次数据库调用的平均耗时 |
调用次数 | 该应用此类型数据库调用次数 |
异常分析
上报字段 | 描述 |
---|---|
异常统计 | 柱状图为该应用、实例、数据库的异常次数 |
异常类型 | 采集到的抛错类型 |
异常详细信息 | 抛错的详细信息 |
平均耗时 | 本次错误调用的平均耗时 |
错误数 | 该异常类型的错误出现的次数 |
接口快照
上报字段 | 描述 |
---|---|
耗时 | 应用、实例的接口的调用耗时 |
状态 | 应用、实例的接口的调用返回状态,正常返回为绿色,抛异常为红色 |
TraceId | 应用、实例调用的索引 ID,点击可以跳转到该调用链详情 |
前端监控专注于 Web 端体验数据监控,从页面打开速度(测速)、页面稳定性(JS Error)和外部服务调用成功率(API)这三个方面监测 Web 页面的健康度。
前端监控需要按照提示在应用设置页面上按提示复制代码,并粘贴在<body>第一行,然后重启应用即可。
统计指标:JS 稳定性、访问速度、API成功率
JS 稳定性,在 ARMS 中是指页面的 JS 错误率。在一个 PV 周期内,如果发生过错误(JS Error),则此 PV 周期为错误样本。错误率 = 错误样本量 / 总样本量
访问速度,在 ARMS 中,访问速度是指页面的首次渲染时间。
字段含义
阶段耗时
上报字段 | 描述 | 计算方式 | 备注 |
---|---|---|---|
dns | DNS 解析耗时 | domainLookupEnd - domainLookupStart | |
tcp | TCP 连接耗时 | connectEnd - connectStart | |
ssl | SSL 安全连接耗时 | connectEnd - secureConnectionStart | 只在 HTTPS 下有效 |
ttfb | Time to First Byte(TTFB),网络请求耗时 | responseStart - requestStart | TTFB 有多种计算方式,ARMS 以 Google Development 定义为准 |
trans | 数据传输耗时 | responseEnd - responseStart | |
dom | DOM 解析耗时 | domInteractive - responseEnd | |
res | 资源加载耗时 | loadEventStart - domContentLoadedEventEnd | 表示页面中的同步加载资源 |
关键性能指标
上报字段 | 描述 | 计算方式 | 备注 |
---|---|---|---|
firstbyte | 首包时间 | responseStart - domainLookupStart | |
fpt | First Paint Time, 首次渲染时间 / 白屏时间 | responseEnd - fetchStart | 从请求开始到浏览器开始解析第一批 HTML 文档字节的时间差 |
tti | Time to Interact,首次可交互时间 | domInteractive - fetchStart | 浏览器完成所有 HTML 解析并且完成 DOM 构建,此时浏览器开始加载资源 |
ready | HTML 加载完成时间, 即 DOM Ready 时间 | domContentLoadEventEnd - fetchStart | 如果页面有同步执行的 JS,则同步 JS 执行时间 = ready - tti |
load | 页面完全加载时间 | loadEventStart - fetchStart | load = 首次渲染时间 + DOM 解析耗时 + 同步 JS 执行 + 资源加载耗时 |
API 成功率,API成功率 = 接口调用成功的样本量 / 总样本量
自定义配置标签页上可以配置调用链采样率、Agent 开关、慢 SQL 查询阈值、接口响应时间阈值、限流阈值、无效接口调用、方法栈最大长度、异常白名单、线程剖析开关、慢调用监听触发阈值等。
探针总开关和日志级别的修改即时生效,无需重启应用。如果关闭探针总开关,则系统将无法监控您的应用,请谨慎操作!
在调用链查询页面,您可以通过TraceId精确查询调用链详细情况,或结合多种条件筛选查询调用链。
数据源(日志源)为 ARMS 提供数据流入,您可以通过各种方式将数据推送到 ARMS 实时计算引擎。
云服务器 ECS,通过 Logtail Agent 完成在 ECS 上的增量推送,例如日志文件。适用场景包括应用运行在阿里云 ECS 上的所有业务监控场景。
LogHub 数据源,将阿里云日志服务(SLS LogHub)作为 AMRS 的数据源输入。如果 ECS 上的日志已经被阿里云 LogHub 收集,那么可以用此方法让 ARMS 复用 LogHub上的数据。
API 数据源,通过 API SDK 向 ARMS 直接推送日志。适用于不适合装 Agent 但是可以通过 API 集成来直接推送数据收集场景,例如移动终端。
MQ 数据源,通过对接 MQ 直接拉取 Topic 内消息并基于其内容进行实时统计,进行业务监控。适用于已用 MQ 处理业务的用户,包括电商、物联网等领域。
ARMS 的内置切分器,包括单分隔符、多分隔符、顺序、KV、JSON 等多种切分器。您可以针对不同的场景单独或组合使用这些切分器。