为应用安装探针后,ARMS即可开始监控应用,您可以在依赖服务页面了解应用依赖服务的详情,包括外部调用、数据库调用和消息队列的详细信息。
前提条件
ARMS应用监控面向已开通新版计费的用户提供全新的监控详情页面,新版计费详情,请参见产品计费(新版)。
对于未开通新版计费的用户,如需查看新版监控详情页面,可在应用列表页面单击切换新版。
已为应用安装探针,具体操作,请参见应用监控接入概述。
查看应用依赖服务
登录ARMS控制台,在左侧导航栏选择 。
在应用列表页面顶部选择目标地域,然后单击目标应用名称。
说明语言列的图标含义如下:
:接入应用监控的Java应用。
:接入应用监控的Golang应用。
:接入应用监控的Python应用。
-:接入可观测链路 OpenTelemetry 版的应用。
在上方导航栏单击依赖服务。
在快捷筛选区域(图示①),您可以按请求类型、接口名称、主机图表、服务列表进行筛选过滤。
在趋势图区域(图示②),您可以查看应用在指定时间范围内对依赖服务发起请求的总数、错误数和平均耗时的时序曲线。
单击图标,可以在弹出的对话框中查看该指标在某个时间段的统计情况或对比不同日期在同一时间段的统计情况,通过选择图标可以切换柱状图、趋势图进行展示。
在服务列表区域(图示③),您可以查看请求的目标、类型、RED三指标(请求数、错误数、平均耗时)等信息。
在服务列表,您可以执行以下操作:
支持的框架
依赖服务详情
外部调用
概览
在概览页签可以查看目标地址/服务的请求数、错误数、平均耗时的统计情况,以及慢调用的时序曲线。
调用链分析
调用链分析功能基于已存储的全量链路明细数据,通过自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。更多信息,请参见调用链分析。
消息调用
Python应用暂不支持查看消息调用。
概览
在概览页签可以查看目标消息的请求数、错误数、平均耗时的统计情况,以及慢调用的时序曲线。
发送统计
发送统计页签以消息发送方视角,列出了Topic的发送情况,包括请求数、错误数、耗时。
调用链分析
调用链分析功能基于已存储的全量链路明细数据,通过自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。更多信息,请参见调用链分析。
数据库调用
Python应用暂不支持查看数据库调用。
概览
在概览页签可以查看该应用调用目标数据库实例的请求数、错误数和平均耗时的统计指标、时序指标与分布,以及慢调用次数分布。
SQL分析
在SQL分析页签可以了解选中数据库实例的请求趋势(请求数、慢SQL次数与平均耗时),以及调用SQL级别的统计指标。借助此页签,您可以找出是哪一个SQL造成服务响应过慢。
返回大小指标目前仅支持MySQL 5.X版本,且应用监控探针版本需为2.7.1.3或以上。
单击SQL右侧的调用链可以查看SQL执行逻辑所在的完整代码链路。更多信息,请参见调用链分析。
异常分析
在异常分析页签可以查看该应用在指定时间范围内调用目标数据库时抛出该异常的次数,以及异常详情。更多信息,请参见异常分析。
调用来源
在调用来源页签可以查看该应用调用目标数据库来源接口的响应时间、请求数和错误数的时序曲线。
调用链分析
调用链分析功能基于已存储的全量链路明细数据,通过自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。更多信息,请参见调用链分析。
常见问题
数据库相关
数据库调用无数据
可能原因:
数据库不在ARMS支持的数据库列表中,支持的数据库请参见ARMS应用监控支持的Java组件和框架。
4.x之前版本的探针不支持通过异步的方式或者是通过无入口的方式调用的数据库。
ARMS控制台看到数据库有慢调用,但是数据库服务端看不到慢调用
ARMS从客户端视角出发进行监控,包括在应用内部发起请求,通过网络传输给服务端,在服务端处理完之后,将响应发回客户端等一系列过程,因此ARMS统计到的数据库指标会受到GC、网络传输的影响,数值会比服务端更大。此外,ARMS判断是否有慢调用是按照自定义配置页面配置的慢SQL阈值判断,阈值默认值为500 ms,和服务端的配置不同。
ARMS控制台看到数据库调用量和数据库服务端监控看到的调用量不同
一个数据库可能被多个应用访问,ARMS控制台只能看到当前应用的访问量,无法看到其他应用访问数据库的调用量。
消息订阅/消息发布相关
消息订阅/消息发布页面的数据和 MQ 实例自监控面板数据有什么区别?
消息订阅/消息发布页面展示的内容为选定应用作为消费者/生产者时的各种性能指标,是客户端视角的监控数据。MQ 实例的监控面板数据是 Topic 相关的性能指标,是服务端视角的监控数据。
消息发送与接收对应的 SpanName 格式是什么?
消息类型 | 4.x 之前版本探针 | 4.X 及之后版本探针 |
RocketMQ/Ons 消息发送 | 不会创建 Span,仅记录方法栈。 |
|
RocketMQ/Ons 消息接收 |
|
|
Kafka 消息发送 | 不会创建 Span,仅记录方法栈。 |
|
Kafka 消息接收 |
|
|
RabbitMQ 消息发送 | 不会创建 Span,仅记录方法栈。 |
|
RabbitMQ 消息接收 |
|
|
Java 探针是否支持 Spring Cloud Alibaba RocketMQ?
4.x 及之后版本的探针中已经支持该框架,如果您探针版本低于 4x,请升级ARMS探针。
MQ 监控中的“消息延迟”指标含义和单位是什么?
消息延迟指该消息从消息产生开始到被 Consumer 消费的总耗时,该指标单位是毫秒(ms)。该指标目前仅支持 RocketMQ Client 和 Ons Client 的采集。
为什么应用中存在消费逻辑,但没有消费者的链路和指标数据?
可能是探针版本低于 4.x,且使用了 lambda 表达式定义 messageListener 中的消费逻辑。
由于2.x/3.x 版本探针对 lambda 表达式的类增强失败,您可以升级探针到 4.x 版本避免该问题。
为什么接入 Java 探针后,Kafka Clients 出现了 Magic v1 does not support record headers 的报错信息?
Java 探针通过 Kafka Message 的 Header 字段来传递链路上下文,而在低于 0.11.0.0 版本的 Kafka 中(无论是 Client 还是 Broker),Kafka 的消息体不支持 Header 字段。如果您的 Kafka-broker 或 Kafka-clients 低于这个版本,请尽快迁移到 0.11.0.0 以上版本。
如果您暂时还无法迁移,对于4.x 之前版本的 Java探针,您可以在应用自定义配置页面的探针开关设置区域关闭 Kafka 组件的增强(kafka-plugin开关);对于 4.x 及之后版本的 Java探针,您可以在启动服务时添加 -Dotel.instrumentation.kafka.producer-propagation.enabled=false
虚拟机参数来防止该类问题。
为什么调用链中缺少接收消息或者发送消息的 Span?
请检查您的 Producer 和 Consumer 应用使用的消息队列 Client SDK 是否在ARMS支持范围内,支持的组件请参见ARMS应用监控支持的Java组件和框架。
请检查您的 Producer 和 Consumer 应用是否都接入了 ARMS 应用监控或可观测链路 OpenTelemetry 版,正常开启了探针开关和插件开关,并上报到了同一地域。发送消息的 Span 在 Producer 中产生,接受消息的 Span 在 Consumer 中产生,如果有应用没有正确接入则会缺失对应 Span。
如果无法看到发送消息的 Span,请检查 Producer 应用探针版本是否大于等于 4.x。在低于 4.x 版本的探针中,发送消息不会作为一个单独的 Span 被统计,而是会统计在父 Span 的方法栈中,您可以单击父 Span 右侧的图标查看实际的调用方法栈。
如果无法看到接收消息的 Span,您可以在对应 Consumer 应用自定义配置页面的接口调用配置区域检查是否配置了无效接口过滤。无效接口过滤会过滤掉您不关心的 Span。