应用性能管理
Collector部署
- 登录管理控制台。
- 单击“管理”-“部署状态”-“Collectors管理”-“新增”。
图1 创建Collector
- 根据页面提示,完成collector的基本信息,如下图所示。
生成collector安装脚本下载命令、校验命令和安装命令。
表1 创建Collector-参数说明 参数名称
参数说明
取值样例
操作系统
必选参数。
Collector目前仅支持Linux x86/64。
Linux x86_64
版本
必选参数。
Collector对应的版本,尽量选择最新版本。
3.6.6.7
安装路径
必选参数。
指定新部署的Collector的安装路径。路径须以/开头,路径仅允许包含字母、数字、下划线、中划线。需要与实际安装路径一致,否则会出现报错。
/opt/
部署环境
必选参数。
用来标识Collector所在的数据中心、VPC、机房,Redirect Server 会为部署在相同 IDC 、VPC或机房的Agent Collector做负载以及 Failover 处理,因此建议不要使用默认值。
default
Collector多网卡
可选参数。
当Collector所部署到的主机有多个网卡时,用户可指定使用哪个网卡与UniAgent进行通信,IP地址需要与UniAgent的IP地址同网段。
192.168.1.1
Collector Port
必选参数。
Collector进程的端口,默认:7665和7666。7665为注册端口,7666为数据传输端口。
7665、7666
正向代理
可选参数。
如果collector到平台网络不通,可以通过配置正向代理实现collector到平台的网络通信
192.168.1.1:8888
- 在服务器上安装完成后,单击页面下方“查看部署状态”。
Uniagent部署
- 登录管理控制台。
- 单击“管理”-“部署状态”-“UniAgents管理”-“新增”。
图2 创建UniAgent
- 根据页面提示,完成UniAgent的基本信息,如下图所示
表2 创建UniAgent-参数说明 参数名称
参数说明
取值样例
操作系统
必选参数。
选择对应的操作系统。
Linux
CPU架构
必选参数。
目前支持x86/64和ARM64两种CPU架构。
x86/64
UniAgent版本
必选参数。
UniAgent安装包需要通过管理员admin登录系统,提前进行上传,才能在此处显示版本号。
2.5.3.2
多网卡
可选参数。
当UniAgent所部署到的主机有多个网卡时,用户可指定使用哪个网卡与Collector进行通信。
192.168.1.1
业务系统
必须参数。
在下拉菜单中选择UniAgent所属的业务系统。用户可在应用与微服务>业务系统中配置业务系统。
Default
标签
可选参数。
单击文本框,弹出标签选项,选择一个或多个标签对不同的监控类型进行区分。如果还未创建标签,可以依次单击基础设施>配置>标签管理,进入标签管理页面创建新标签。
Default
全栈数据采集
可选参数。
开启后,UniAgent对基础设施、服务端进行数据采集。如果禁用,UniAgent只会对基础设施进行数据采集。
-
- 在服务器上安装完成后,单击页面下方“查看部署状态”。
业务系统
业务系统页面分别以列表和拓扑图的形式展示当前监控的所有业务系统及其相关的性能指标数据,在页面的左上角单击列表或拓扑页签可进行切换。默认情况下,系统以拓扑图的形式展示。
在业务系统页面的左上角单击拓扑页签,可以切换到业务系统全局拓扑图页面。业务系统全局拓扑以图标和连线的形式展示各个业务系统和未分组的应用之间复杂的调用关系,并展示相关性能指标,当出现性能问题时能帮助用户迅速定位故障所在。
业务系统和服务组由用户定义,具体请参见新建业务系统和新建服务组。缺省状态下部署了探针的应用将显示在操作面板的应用区,不属于任何业务系统和服务组。
应用
A区域展示当前应用的调用关系,从左依次是调用者、当前应用、下游应用或服务组件。
B区域展示当前应用的Web请求分析图表、后台任务分析图表以及健康度条形图。此处的Web请求是指由程序外部发起、使用TCP/IP协议传输的网络请求,包括当前应用所属事务和服务接口。指标数据源来自服务端。
C区域展示疑似问题:展示所选时间范围内应用的疑似问题,包括持续中和已关闭的,持续中的问题显示为红色,已关闭的显示为灰色。您可以查看问题的问题id 、问题描述、影响对象、开始结束时间、持续时间。疑似问题可能是数据库响应时间恶化、错误率增加、应用存活探针数过低等。默认展开最新的6个持续中的疑似问题,折叠已关闭的问题。单击问题可查看疑似问题根因和影响范围。
多维可观测:从不同维度查看统计时间范围内当前应用的分析数据,包括调用者分析、OneTrace分析、日志分析和错误分析。
调用者分析:单击后可查看有哪些应用依赖于该应用。
OneTrace:单击后可查看单次追踪详情。
日志:单击后可查看该应用关联的日志。
错误分析:单击后可查看错误的根因分析。
事件:展示所选统计周期内对象统计中环比分析的结果事件。
柱状图:蓝色柱状图代表对象数增长数,绿色代表对象数持续增长数。
列表:展示事件的发生时间、事件类型和事件描述信息。事件描述的信息包括:事件名称、应用名称和实例名称。单击一个事件,可查看对象统计环比分析详情。
中间展示的对象数增长、探针熔断等数据是对象统计中环比分析的结果事件数量。
事务
事务是业务系统中完成某一业务操作的一组用户请求。例如电商业务系统中的提交订单,OA系统中的审批签署等等。单个的用户请求是事务的一个实例。事务属于业务系统,可以穿透和跨越整个系统中的业务系统以及业务系统中的应用,以第一个收到请求的应用为事务的入口应用,穿透的其他的应用是该事务的下游应用,当事务穿透和跨越应用时,在下游应用上的访问不再产生新的事务。入口应用所在的业务系统为该事务所属的业务系统,当事务穿透和跨越业务系统时,在下游的业务系统不再生成新的事务,而是依然属于入口业务系统。
单击左侧导航栏中的事务,进入事务列表页面。该列表默认展示当前业务系统下所有事务的基本信息,默认按总耗时进行排序。各个列表项说明如下:
- 健康度:事务的健康状态。当显示为“严重”或者“警戒”时,可单击健康度进入健康度分析页面,查看该事务的健康详情。
- 别名:事务的别名。设置别名可方便用户识别事务。未设置时,别名默认展示为事务名称。
- 名称:事务名称。事务名称由探针自动识别或用户自定义的事务命名规则来命名。事务名称的下方会展示涉及的数据项,如果不涉及则不显示。单击事务名称可进入该事务的概览页面。
- 总耗时:统计周期内该事物被请求多次的耗时之和。
- 耗时百分比:统计周期内该事务的总耗时占应用中所有事务总耗时的百分比。
- 入口应用:当前事务所属应用,即产生当前事务的入口应用。单击该应用可进入该应用概览页面。
服务接口
服务接口是业务系统中非事务入口应用(下游应用)中的一组服务请求,通常是事务请求在某个应用上的一段请求,例如认证接口或数据查询接口,单个的服务请求是服务接口的一个实例。每个服务接口都属于具体的一个应用。
在左侧导航栏中单击应用与微服务>服务接口,进入服务接口列表界面。服务接口列表展示当前业务系统下统计周期内的所有活跃服务接口信息,默认按平均响应时间进行排序。列表中包含以下的项目:
- 名称:服务接口名称,类似于事务名称,由探针自动命名或根据用户设置的自定义规则命名。支持正反排序。
- 应用:当前服务接口所属的应用名称,单击可跳转到对应应用的概览页面。支持正反排序。
- 响应时间:当前服务接口在统计周期内的响应时间历史趋势缩略图。
后台任务
后台任务展示当前业务系统的应用中不是由事务访问直接或间接调用的后台定时执行的各类任务的统计信息。后台任务通常用来分析定期执行的批处理任务是否按预期的执行计划运行以及运行过程中是否存在性能问题。
单击左侧导航栏中的后台任务进入后台任务列表页面,该列表默认展示当前业务系统下所有的后台任务及其相关指标,默认按照平均执行时长从高到低进行排序。列表中显示以下字段:
- 名称:后台任务名称。后台任务名称由探针自动识别或用户自定义的事务命名规则来命名。单击后台任务名称可进入该后台任务的概览页面。
- 应用:当前后台任务所属的应用。单击该应用可进入该应用概览页面。
- 实例:当前后台任务所运行在的应用实例。如果应用实例的名称发生了变化,后台任务列表中会新增一条数据来记录原后台任务与新应用实例的对应关系。
后台任务列表提供按业务系统、所属应用和后台任务名称进行搜索的功能,同时可以按各指标字段进行排序。
Database
在左侧导航栏中依次单击应用与微服务>服务组件>Database组件,进入Database列表页面。在Database列表页面中,用户可以查看当前业务系统中在统计周期内应用所访问的所有SQL数据库组件的列表。数据库组件列表默认按照平均执行时间从高到低进行排序,支持按不同指标项进行排序。
您可以进行以下操作:
- 单击右上角的实例或Schema,根据需要按实例或者数据库的Schema对列表中的数据库进行聚合,IP地址和端口号相同,或者数据库的Schema相同,会被聚合成一条出现在列表中。
- 单击右上角的自定义表头,勾选想要展示的列名,并可以调整列宽。部分字段是必选项,必须展示。单击恢复默认可恢复到系统默认展示的列和宽度。
NoSQL
NoSQL服务组件功能模块展示当前业务系统中使用到的所有NoSQL数据库的信息,目前支持Redis、MongoDB和Memcached三种类型的NoSQL数据库监控。
在左侧导航栏中选择服务组件>NoSQL组件进入NoSQL分析界面。界面上以列表形式展示所有NoSQL组件的列表。
MQ
MQ服务组件功能模块展示当前业务系统中使用到的所有消息队列的信息,方便用户分析消息队列上可能存在的性能瓶颈以及生产和消费消息队列的相关应用的性能问题。通过应用与微服务的服务组件>MQ组件菜单进入MQ分析界面。界面上以列表形式展示所有MQ组件。
单击MQ列表上的消息队列实例名称可跳转到对应消息队列的详情分析页面,包括概览中的MQ拓扑图、健康度、关键指标趋势图和按队列、消息生产者、消费者分别统计的队列性能指标统计报表。
错误分析
错误分析模块对当前业务系统、应用或者实例中出现的错误和异常进行汇总分析。
错误:影响用户访问的请求的异常称之为错误。当一个请求发生多个错误时,只为该请求保留优先级最高的一个错误,其他的错误不进行统计。错误按优先级从高到低排序,包括:
- Business Error(业务错误)
- Uncaught Exception
- HTTP Error Code
- Redirect Error Page
- Logged Exception
- Logged Error Message(开启设置事务状态为错误功能后)
异常:代码执行过程中产生的异常,不影响用户访问,统计范围如下:
- 外部服务异常
- 数据库异常
- NoSQL异常
- MQ异常
- 代码异常
错误趋势图分别展示请求数、错误数和错误率的变化趋势,可在页面上方的下拉菜单中选择统计对象。其中蓝色和红色柱图的总高度代表请求数。图的右上角展示统计周期内的总请求数量、平均每分钟的请求数、总错误数、平均每分钟的错误数、错误率。
请求追踪
请求追踪用来记录一次事务/服务接口/后台任务请求过程中所经过和访问的所有业务系统、应用和相关服务组件的详细信息,包括业务数据、性能数据、代码堆栈、服务组件的详细操作以及错误和异常信息等等。当请求的响应时间大于设置的事务追踪阈值,那么该次请求的过程就会被系统详细记录。
OneTrace列表提供当前统计周期内所有追踪到的慢事务、慢服务接口和慢后台任务。
用户可以从业务系统概览、事务概览、应用概览等页面进入请求追踪界面,也可以直接从菜单中选择请求追踪进入请求追踪页面。
连接池
在实际应用访问过程中,经常会出现因为数据库(包含NoSQL)连接池资源紧张,导致事务响应时间较长。在这种场景下想要定位应用性能问题的根因,不但需要问题排查人员能熟练使用APM,还需要很强的研发能力。监控数据库连接池可以有效的解决上述问题,提高使用者独立排查问题的效率。目前支持采集Database、NoSQL(Jedis)连接池信息,可分别查看业务系统、应用、实例、事务不同级别的Connection Pool信息。
在左侧导航栏中选择连接池进入连接池列表页面。在页面上方指定业务系统、应用或实例后,该页面以列表形式展示所访问的所有连接池指标,包括以下内容:
- 数据库实例:由类型、主机+端口、Schema组成。其中类型包括MySQL、Oracle、DB2、SQL Server、PostgreSQL、Redis。
- Max Active:应用启动时,注册连接池初始化配置的最大活跃连接数。
- Init Active:应用启动时,注册连接池初始化配置的活跃连接数,即最小连接数。
- Max Idle:应用启动时,注册连接池初始化配置的最大空闲连接数。有些框架不需要设置,此时Max Idle等于Max Active。
- Min Idle:应用启动时,注册连接池初始化配置的最小空闲连接数。
- Current Used:连接池已被使用的连接数。
- Current Idle:目前连接池空闲的连接数。
- Avg. Connection time:指定时间段内,从连接池中获取连接的平均等待时间。
- Connection Pools:展示选定时间段内每个连接池的统计数据,以及连接获取耗时和被使用的连接数的历史曲线。
- Name:连接池名称,为连接池的唯一标识。通常由连接池框架名(C3P0、Druid、Hikaricp、WebLogic、Jedis)+随机码组成。随机码由探针随机生成。
- Max:该连接池的最大活跃连接数。
- Used:最近一分钟该连接池中已使用的连接数。
- Idle:最近一分钟该连接池中空闲的连接数。
- Conn.time:最近一分钟从该连接池获取连接的平均等待时间。
诊断工具
应用可能会发生内存溢出而导致崩溃,利用诊断工具可以主动发现并分析问题。要分析内存问题,系统提供了两种诊断工具。一是您可以远程对进程打内存Dump文件,并可转存储到指定服务器。二是通过对内存进行对象统计和环比分析,判断对象数量是否存在持续增长的趋势,进而判断内存泄露的可能性。
在左侧导航栏中依次单击应用与微服务>诊断工具,进入诊断工具页面,该页面展示当前统计周期内触发的诊断记录,包括对象统计和内存Dump两类。
在页面左侧,您可以通过诊断结论、诊断类型和状态三个维度对诊断记录进行过滤。
- 诊断结论:包括对象数持续增长和对象数疑似增长。
- 对象数持续增长:当环比分析评估增量大于2000且增量比大于等于0.5时,系统认为对象数持续增长。
- 对象数疑似增长:当环比分析评估增量大于2000且0.1<增量比<0.5时,系统认为对象数疑似增长。
- 诊断类型:包括对象统计和内存Dump。
- 状态:包括进行中、分析中、已完成和失败。
健康规则
健康度是应用与微服务中用来评估各类被监控对象健康状态的重要指标,目前支持评估业务系统、服务组、应用、实例、事务、服务接口、数据库、NoSQL、MQ、外部服务、错误和异常。系统通过不同的颜色来表示不同状态的健康度,说明如下。
- 绿色:表示健康(正常)。
- 黄色:表示警戒。
- 红色:表示严重。
- 灰色:表示未知状态,当无法评估健康度时会显示未知状态,例如:没有匹配的健康规则、被监控对象没有足够符合要求的数据、配置变更但新的健康规则未触发等等。
部署管理
在左侧导航栏中依次单击应用与微服务>部署管理,然后在上方选择UniAgents页签,进入UniAgent管理页面。
UniAgent管理页面展示已安装UniAgent的主机,单击主机可查看主机上被监控的进程信息。各个功能说明如下:
- Hosts和processes数量:UniAgent监控的主机和进程数量。
- 只展示最近一周的Host列表:按照UniAgent安装时间(Install time)进行筛选。
- 新建部署:单击新建部署按钮,跳转到新增UniAgent部署页面,详情请参见新增UniAgent部署。
- 查询:单击过滤框,弹出过滤条件,选择过滤条件,单击查询按钮查询UniAgent。可设置多个过滤条件,如下图。
图19 部署管理
配置
应用与微服务中提供4种级别的选项配置,配置级别(即配置的顺序)从高到低分别是全局配置、业务系统配置、应用配置和实例配置。部分配置项会同时出现在多种级别的配置页,配置生效情况说明如下:
如果在低级别的配置中选择使用上级配置时,当前级别的被监控对象继承并保持与上一级完全一样的设置值。
如果低级别的配置中勾选了单独配置功能,且打开开关设置了与上级配置不一样的设置值,则当前低级别的设置值会生效,即配置生效的优先级为:全局配置<业务系统配置<应用配置<实例配置。
如果低级别的配置中勾选了单独配置功能,但是没有打开开关,则代表当前监控对象不启用该功能。
全局配置
全局配置的配置项允许用户设置对整个系统统一生效,
包括日志溯源开关、开启追踪、错误及异常采集设置和探针熔断等选项。