每一个报警指标都归属于一个报警指标类型,并且每一类指标类型都有固定的报警指标维度。本文介绍 ARMS 应用监控和前端监控类型的报警规则的指标说明。

背景信息

调用错误与异常调用的区别:

  • 调用错误是指整个对外调用行为的返回状态码 > 400。
  • 异常调用是指调用中出现异常抛错。

应用监控报警规则指标说明

指标类型 指标维度 指标名称
应用调用统计 接口名称 调用响应时间_ms:应用入口调用(包括调用 HTTP 入口和调用 Dubbo 入口等)、数据库调用以及系统内部调用的响应时间毫秒数。可以根据该指标判断是否有慢请求出现,从而判断应用是否存在异常。
说明 此指标比页面展示的响应时间指标多了数据库调用以及系统内部调用指标。
调用次数:应用入口调用(包括调用 HTTP 入口和调用 Dubbo 入口等)、数据库调用以及系统内部调用的调用次数。可以根据该指标分析当前应用调用量的大小,从而判断业务量的大小,以及通过调用量是否偏大或偏小判断应用是否存在异常。
说明 此指标比页面展示的调用次数指标多了数据库调用以及系统内部调用指标。
调用错误次数:应用入口调用(包括调用 HTTP 入口和调用 Dubbo 入口等)、数据库调用以及系统内部调用的调用错误次数。可以根据该指标判断应用是否存在异常或者是否存在调用错误。
说明 此指标比页面展示的错误数指标多了数据库调用以及系统内部调用指标。
应用调用类型统计 接口调用类型 应用提供服务调用响应时间_ms:应用入口调用(包括调用 HTTP 入口和调用 Dubbo 入口等)的响应时间毫秒数。可以根据该指标判断整个业务链路是否有异常。
应用提供服务调用次数:应用入口调用(包括调用 HTTP 入口和调用 Dubbo 入口等)的调用次数。可以根据该指标分析整个业务链路访问量的大小,从而判断业务量的大小,以及通过调用量是否偏大或偏小判断应用是否存在异常。
应用提供服务调用错误率:应用入口调用(包括调用 HTTP 入口和调用 Dubbo 入口等)的调用错误率。可以根据该指标判断整个业务链路是否有错误;若是对外服务,可以判断用户访问系统失败的错误数。
应用依赖服务调用响应时间_ms:该应用调用链路的下游依赖服务,如 HTTP 服务间调用和数据库调用等调用的响应时间毫秒数。可以根据该指标判断下游系统访问是否响应缓慢,从而判断本应用是否存在异常。
应用依赖服务调用次数:该应用调用链路的下游依赖服务,如 HTTP 服务间调用和数据库调用等调用次数。可以根据该指标判断对下游应用的调用量大小,从而判断整个系统链路是否存在异常。
应用依赖服务调用错误率:该应用调用链路的下游依赖服务,如 HTTP 服务间调用和数据库调用等调用错误率。可以根据该指标判断对下游应用是否有错误调用,从而判断整个系统链路是否存在异常。
数据库指标 数据库名称 数据库调用响应时间_ms:该应用对数据库的调用响应时间毫秒数。可以根据该指标判断应用是否有数据库慢访问,从而判断应用调用数据库是否存在异常或数据库环境是否存在异常。
数据库调用次数:该应用对数据库的调用次数。可以根据该指标判断应用是否对数据库造成过大压力,从而判断应用是否存在异常。
数据库调用错误次数:该应用对数据库的调用错误次数。可以根据该指标判断应用的异常是否是数据库导致的,从而定位数据库是否存在异常或数据库环境是否存在异常。
JVM 监控 节点机 IP jvm 标记清除次数:可以判断 JVM 标记清除次数,非报警常用指标。
jvm 非堆总使用内存量_byte:可以根据该指标判断此时应用是否使用过量非堆内存,尤其在某些使用非堆内存的场景,从而判断应用是否存在异常。
jvm_young 区 g1gc 次数:可以判断 JVM_Young 区 G1GC 次数,非报警常用指标。
jvm_fullgc 次数:可以根据该指标判断应用是否过于频繁发生 FullGC,从而判断应用是否存在异常。
jvm_fullgc 耗时_ms:可以根据该指标判断应用是否消耗过多时间在 FullGC 上,从而判断应用是否存在异常。
jvm 非堆内存初始值_byte:可以判断 JVM 非堆内存初始值,非报警常用指标。
jvm 非堆内存提交值_byte:可以判断 JVM 非堆内存提交值,非报警常用指标。
jvm_younggc 次数:可以根据该指标判断应用是否过于频繁发生 YoungGC,从而判断应用是否存在异常。
jvm_old 区 g1gc 次数:可以判断 JVM_Old 区 G1GC 次数,非报警常用指标。
jvm 非堆内存最大值_byte:可以判断 JVM 非堆内存最大值,非报警常用指标。
jvm 堆内总内存量_byte:可以根据该指标判断应用是否使用过量堆内存,从而判断系统是否存在异常。
jvm_线程总数:可以根据该指标判断此时应用是否正常运行(即应用线程数 > 0),或是是否有大量线程出现(例如线程池等场景)。
jvm 垃圾回收次数:可以判断总 JVM 垃圾回收(GC)次数,非报警常用指标。
jvm_younggc 耗时_ms:可以根据该指标判断应用是否消耗过多时间在 YoungGC 上,从而判断应用是否存在异常。
主机监控 节点机 IP 节点机用户使用 cpu_百分比:可以根据该指标判断应用是否消耗过多 CPU 资源,建议应用保持在 90% CPU 水位线以下。
节点机接受错误报文数:可以根据该指标判断节点机网络是否异常,非报警常用指标。
节点机空闲磁盘_byte:可以根据该指标判断节点机磁盘是否已满,磁盘已满会导致应用异常。
节点机发送错误报文数:可以根据该指标判断节点机网络是否异常,非报警常用指标。
节点机系统负载:可以根据该指标判断节点机目前工作负载是否过高,一般拥有 N 核的节点机,负载建议不应高于 N,非报警常用指标。
节点机空闲内存_byte:可以根据该指标判断节点机是否内存充足,若节点机空闲内存量低,则易导致 OOM 等异常。
异常接口调用 接口名称 应用异常接口调用次数:该应用的异常调用的调用次数,其中,异常调用指调用中出现异常抛错的调用。可以根据该指标判断调用堆栈是否抛错,从而判断是否存在应用调用异常。
应用异常接口调用响应时间:该应用异常调用的响应时间,其中,异常调用指调用中出现异常抛错的调用。可以根据该指标判断调用堆栈抛错对应用调用响应时间的影响大小,从而判断是否存在应用调用异常。

前端监控报警规则指标说明

指标类型 指标维度 指标名称
页面 API 指标 页面名称API 名称 API 失败耗时:某个页面的接口调用失败情况下的平均请求耗时,可以根据该指标判断页面的接口请求时间是否正常。
API 请求次数:具体某个页面的接口调用次数,可以根据该指标判断页面的接口请求是否正常。
API 成功耗时:某个页面的接口调用成功情况下的平均请求耗时,可以根据该指标判断页面的接口请求时间是否正常。
API 成功率:某个页面下的接口调用成功次数 / 总调用次数,可以判断页面的接口请求是否正常。
自定义指标 自定义 key 自定义上报求和:用户主动上报的求和字段,ARMS 会对该字段做累加,用于用户自定义打点。
自定义上报均值:用户主动上报的均值字段,ARMS 会对该字段求平均值,用于用户自定义打点。
页面指标 页面名称 页面 dns 查询时间_ms:页面的DNS 连接耗时,用于判断页面访问速度是否正常。
页面自定义首屏时间_ms:用户主动上报的首屏时间,属于自定义性能字段,用于判断页面访问速度是否正常。
页面自定义可交互时间_ms:用户主动上报的首次可交互时间,属于自定义性能字段,用于判断页面访问速度是否正常。
页面首次渲染耗时_ms:指从请求开始到浏览器解析第一批HTML文档字节的时间,用于判断页面访问速度是否正常。
页面资源加载时间_ms:页面的资源加载耗时,用于判断页面访问速度是否正常。
页面自定义 t1-t10 时间_ms:自定义性能字段,您如果有需要则主动上报,字段含义由您自行定义。
页面访问量:指页面被访问的次数。
页面网络请求响应时间_ms:网络请求耗时,用于判断页面访问速度是否正常。
reay 时间_ms:HTML 加载完成时间,即 DOM Ready 时间,用于判断页面访问速度是否正常。
页面 dom 解析时间_ms:页面的 DOM 解析耗时,用于判断页面访问速度是否正常。
页面满意度:根据首次渲染耗时计算得出。满意数指首次渲染耗时 < 2000ms 的次数,可容忍数指 2000ms < 首次渲染耗时 < 8000ms 的次数。满意度 =(满意数 + 可容忍数 / 2)/ 总样本数。
JS 错误数:指页面发生 JS 报错的次数。
页面首次可交互时间_ms:页面首次可操作时间,用于判断页面访问速度是否正常。
页面内容传输时间_ms:页面的数据传输耗时,用于判断页面访问速度是否正常。
页面完全加载时间_ms:从开始加载到完全加载的时间,Load = 首次渲染时间 + DOM 解析耗时 + 同步 JS 执行耗时 + 资源加载耗时,用于判断页面访问速度是否正常。
页面 tcp 连接时间_ms:页面的 TCP 连接耗时,用于判断页面访问速度是否正常。
页面首屏时间_ms:指页面的主要内容首次出现在屏幕上的时间,用于判断页面访问速度是否正常。
报错 API 的影响用户数:表示调用接口失败的用户数,用于判断调用接口错误的影响面。
JS 错误率:指发生 JS 错误的页面访问次数 / 总页面访问次数,用于标识页面 JS 错误的严重程度,JS 错误率越高严重。
页面 ssl 建连时间_ms:SSL 连接耗时,用于判断页面访问速度是否正常。
API 指标 API 名称 API 成功率:接口被成功调用的次数 / 总调用次数,用于判断接口调用量是否正常。
API 成功耗时:接口所有调用成功的情况下的平均耗时,用于判断接口请求耗时是否正常。
报错 API 的影响用户数:表示调用接口失败的用户数,用于判断调用接口错误的影响面。
API 失败耗时:接口所有调用失败的情况下的平均耗时,用于判断接口请求耗时是否正常。
API 请求次数:接口被调用的次数,用于判断接口调用量否正常。