为应用安装探针后,ARMS即可开始监控应用,您可以在提供服务页面了解应用提供的服务详情,包括接口调用、消息队列和定时任务的详细信息。
前提条件
ARMS应用监控面向已开通新版计费的用户提供全新的监控详情页面,新版计费详情,请参见产品计费(新版)。
对于未开通新版计费的用户,如需查看新版监控详情页面,可在应用列表页面单击切换新版。
已为应用安装探针,具体操作,请参见应用监控接入概述。
查看应用提供服务
登录ARMS控制台,在左侧导航栏选择 。
在应用列表页面顶部选择目标地域,然后单击目标应用名称。
说明语言列的图标含义如下:
:接入应用监控的Java应用。
:接入应用监控的Golang应用。
:接入应用监控的Python应用。
-:接入可观测链路 OpenTelemetry 版的应用。
在上方导航栏单击提供服务。
在快捷筛选区域(图示①),您可以按请求类型、接口名称、主机对图表、服务列表进行筛选过滤。
在趋势图区域(图示②),您可以查看服务的请求数、错误数和平均耗时的时序曲线。
单击图标,可以在弹出的对话框中查看该指标在某个时间段的统计情况或对比不同日期在同一时间段的统计情况,通过选择图标可以切换柱状图、趋势图进行展示。
在服务列表区域(图示③),您可以查看接口的名称、请求类型、RED三指标(请求数、错误数、平均耗时)等信息。
在服务列表,您可以执行以下操作:
支持的框架
接口详情
接口调用
概览
在概览页签可以查看目标接口的请求数、错误数、平均耗时,以及HTTP-状态码统计、慢调用的时序曲线。
SQL和NoSQL分析
在SQL分析和NoSQL分析页签可以查看左侧选中接口发起的SQL和NoSQL请求列表,同时可以通过主机列表进行主机过滤。借助此页签,您可以找出是哪一个SQL或NoSQL造成某个服务过慢。
单击SQL或NoSQL的数据库名称可以查看该数据库的详情;单击SQL或NoSQL右侧的调用链可以查看SQL或NoSQL执行逻辑所在的完整代码链路。更多信息,请参见调用链分析。
链路上下游的接口调用情况
链路上游和链路下游页签分别列出了应用上游(调用应用的一方)和应用下游(被应用调用的一方)的接口及其调用性能指标,包括请求数、错误数和耗时信息。
调用链分析
调用链分析功能基于已存储的全量链路明细数据,通过自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。更多信息,请参见调用链分析。
消息队列
Python应用暂不支持查看消息队列。
概览
在概览页签可以查看目标接口的请求数、错误数、平均耗时,以及消费延迟(目前仅支持RocketMQ 4.8.0+)。
SQL和NoSQL分析
在SQL分析和NoSQL分析页签可以查看左侧选中接口发起的SQL和NoSQL请求列表,同时可以通过主机列表进行主机过滤。借助此页签,您可以找出是哪一个SQL或NoSQL造成某个服务过慢。
单击SQL或NoSQL的数据库名称可以查看该数据库的详情;单击SQL或NoSQL右侧的调用链可以查看SQL或NoSQL执行逻辑所在的完整代码链路。更多信息,请参见调用链分析。
消费统计
消费统计页签以消息消费方视角,列出了Topic的消费情况,包括请求数、错误数和耗时。
调用链分析
调用链分析功能基于已存储的全量链路明细数据,通过自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。更多信息,请参见调用链分析。
定时任务
目前仅Java应用支持查看定时任务。
概览
在概览页签可以查看目标接口的请求数、错误数、平均耗时,以及调度延迟时间的时序曲线。
SQL和NoSQL分析
在SQL分析和NoSQL分析页签可以查看左侧选中接口发起的SQL和NoSQL请求列表,同时可以通过主机列表进行主机过滤。借助此页签,您可以找出是哪一个SQL或NoSQL造成某个服务过慢。
单击SQL或NoSQL的数据库名称可以查看该数据库的详情;单击SQL或NoSQL右侧的调用链可以查看SQL或NoSQL执行逻辑所在的完整代码链路。更多信息,请参见调用链分析。
链路下游的接口调用情况
链路下游页签列出了应用下游(被应用调用的一方)的接口及其调用性能指标,包括请求数、错误数和耗时信息。
调用链分析
调用链分析功能基于已存储的全量链路明细数据,通过自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。更多信息,请参见调用链分析。
常见问题
接口调用的链路上游是什么
指上游应用调用该应用的次数,当上游应用接入了ARMS探针,就会有记录;当上游应用没有接入ARMS探针,就不会有。如果应用自己调用自己,也会作为上游应用展示。
部分接口缺失链路上游
如果该接口确实存在上游调用,但上游调用没有接入ARMS探针,则上游调用不会被展示出来。
链路上下游混乱
如果当前链路中有使用SkyWalking组件,则默认整条链路中的Tracing协议为SkyWalking协议。在4.2.x版本之前,ARMS对SkyWalking协议的支持存在问题,会导致上下游识别失败。您可以升级到4.2.x或以上版本,或者在自定义配置页面的调用链透传协议设置中强制使用其他非SkyWalking协议进行Trace上下文透传。具体操作,请参见Java应用自定义配置。
Dubbo接口错误数不为0,但是搜不到调用链
探针3.2.x版本之前,Dubbo调用链未正确记录状态码,导致搜不到错误调用链,3.2.x及以上版本已经修复。
接口调用中异常次数不为0,但在调用链中无法搜索到异常调用链
在4.1.x版本之前,探针仅记录错、慢调用,所以当接口调用中仅有异常时,不一定被采样;在4.1.x版本之后,探针记录错、慢、异常采样,当接口调用中存在异常时就会被采样。
为什么接口流量下跌了
首先需要排除是否确实下跌了,可以通过查看下跌时间点前后的CPU水位,网络IO等指标是否有同步变化来判断:
如果有,一般是实际流量下跌。
如果没有,可能是ARMS服务端出现问题,此时建议提交工单咨询。
Spring Cloud Gateway监控的流量不准
4.x版本以前对于Spring Cloud Gateway的埋点存在缺陷,在某些场景下会导致流量统计丢失,建议升级到4.x版本探针。
是否能查看一个接口中有哪些慢SQL
可以,查询页面如下:
新版控制台
在监控详情页面单击目标接口名称,然后在SQL分析页面查看。
旧版控制台
在目标应用的
页面查看。旧版控制台中接口前面的黄点是什么意思
将鼠标移到圆点上,可以查看相应提示。
黄点代表慢调用,默认一次请求耗时大于500 ms会被标识为慢调用,您可在自定义配置页面的接口调用配置区域调整该阈值。
红点代表错误。
部分5xx数据未被采集到
根据RFC7231说明,502、504等状态码为Gateway抛出的错误状态码,这些状态码是Gateway产生的,和Gateway调用服务实际的响应码可能并无关系。如果Gateway没有接入ARMS监控,只是Gateway对接的服务方接入了ARMS,这种场景下抛出的5xx响应是不会被统计上来的。
NetWork And Dubbo Response Decode是什么
是一个Span,用于统计Dubbo传输层反序列化的耗时。
接口中为什么包含*或者ARMS关键字的一些字符
这种情况是因为接口名比较发散,ARMS对接口进行了收敛,将相似接口中差异的部分进行了替换,详情请参见ARMS收敛机制说明。
外部调用接口耗时与下游服务实际耗时不同
服务端耗时是请求到接口之后,接口处理请求的耗时;调用端耗时是发起请求之后统计的耗时,还会包含建连、网络等耗时。其中,ARMS控制台会分别展示服务端接口的处理请求耗时,与调用方发起请求的完整耗时,但是其中网络相关的耗时无法确定。
接口正常返回,但单次异常次数不为0
这个是符合预期的,这些异常是某些框架(如OkHttp3框架)内部抛出的,这些异常在外部被框架catch住了,因此业务是正常的,但是ARMS监控的时候因为针对这个框架进行了埋点,所以也会对这些异常信息进行记录,但不代表业务真的有异常,这些信息业务方可以自行判断是否需要进行治理。这个异常在统计时忽略了异常的Message信息,如果想要看具体异常的Message信息,可以通过单击异常对应的一条调用链 ,然后单击接口右侧的图标,查看方法栈里面的异常信息。
HTTP接口名为/error、/404、/*、/**等
这种通常是有一些非预期的请求,ARMS无法为这些请求找到匹配的路由,一般存在以下几种情况:
请求了一个不存在的URL。
请求头非法导致请求校验失败报错,例如Header包含非法字符。
使用了一些无路由机制的HTTP Server,例如裸用Netty。
接口调用中请求次数和调用链分析中接口次数不一致
调用链分析是基于Trace数据计算的,受采样率影响。
接口详情里的分位数耗时和调用链分析里的不一样
接口详情中分位数是单机基于分桶算法计算得到的,调用链中是基于采样后该接口相关Span的耗时计算的,所以二者不一致,详情请参见ARMS分位数指标计算原理。
接口调用量突然增量2倍左右
这种情况一般是由于在升级探针的过程中误操作,同时挂载了3.x和4.x版本的探针导致。您可以前往
页面选择任一探针,单击查看详情查看JVM参数。如下图所示,存在两个-javaagent
参数就是同时挂载了3.x和4.x探针。
ARMS控制台看到的调用量和其他途径统计的调用量不一致
造成调用量不一致的情况比较多,下面举例说明两种常见场景:
ARMS看到应用的接口调用量为500次/分钟,Nginx看到接口的调用量为200/分钟。一般造成这种原因很有可能是有流量绕过Nginx直接访问应用。
ARMS上看到应用访问DB的次数是400次/分钟,DB服务端监控看到数据库执行次数是1000/分钟。一般造成这种情况是该DB被多个应用访问,ARMS控制台仅能看到特定应用的访问量。
ARMS当前对于webflux场景的支持情况
4.x之前的探针只支持使用原生的Spring Webflux和spring-cloud-gateway。对于使用自定义WebHandler修改过的Webflux相关插件(如apache shenyu)暂时不支持。