1. 应用诊断

1.1. 功能截图

1.2. 知识点

说明NTC应用诊断室对各个应用实例进行全方位监控、诊断。包含应用、服务器概要,应用当前流量,应用(监控、日志、变量等),服务器(监控、日志等),诊断工具帮助用户快速定位、排查问题。

1.3. 功能详述

1.3.1. 列表

左上角Dump和堆内存dump可以对选中实例进行批量Dump操作,点击之后后台自动dump,按钮会置灰直到dump完成

右上角的Dump文件管理可以查看所有dump文件,包括正在进行中的dump操作

该页面提供各种查看条件来过了dump文件,dump失败的操作可以点击dump日志,错误信息来查看具体原因。

监控指标

上图展示了应用和实例维度关键监控指标数据,如:cpu、内存、日志、请求、成功率、服务器的内存、cpu、负载、IO等。点击诊断按钮,跳转该实例具体诊断页面

1.3.2. 概要

应用、服务器比较关键信息概要展示,具体有应用正在处理的流量耗时和cpu耗时top5,应用线程栈深度、cpu耗时、分组数量、正在处理方法 top5展示。其他包括应用和服务器的关键监控指标展示,如下图:

展示该应用正在处理的交易,分别列举了耗时和cpu耗时top,点击交易名可以跳转具体的链路信息

应用此时的所有线程信息,展示了线程比较关注维度,有状态占比图,栈深度,cpu耗时,分组数量,当前正在调用方法占比 top5排序。点击相应的线程名可以展示具体的线程栈信息,点击更多可以dump此刻线程进行更多线程信息查看。

应用和服务器的基本监控指标信息

1.3.3. 流量

应用正在处理、最近5分钟处理、最近1小时处理、最近1天处理 不同时间段的交易流量信息。列表中展示不同交易总笔数,最小最大平均耗时等

正在处理

列举正在处理的交易信息,等待耗时和cpu耗时,点击操作列“线程”可以查看该交易对应的正在处理的线程栈信息,点击”链路“跳转到具体的链路图。该功能可以很方便的知道应用目前正在做什么交易,卡在哪些交易,以及哪行代码

最近5分钟

列举最近5分钟应用交易信息(同步需要1分钟左右时间),统计不同交易笔数,耗时,cpu耗时等

最近1小时

列举最近1小时应用交易信息(同步需要1分钟左右时间),统计不同交易笔数,耗时,cpu耗时等

最近1天

列举最近1天钟应用交易信息(同步需要1分钟左右时间),统计不同交易笔数,耗时,cpu耗时等

1.3.4. 应用

该tab展示了应用实例的监控概览信息和实时监控图表信息,同时也列举了应用内存日志-错误日志,日志文件,ulimit信息,系统变量信息,类加载信息

日志

有错误日志、内存日志、日志文件

错误日志:基于内存日志,根据类名,级别,线程区分不同类型日志,进行统计展示

内存日志:应用内存日志,最近500行日志信息

日志文件:基于日志文件进行查看,下载等

ulimit

该应用的ulimit信息

系统变量

可以 查看该应用系统变量信息

类加载器

显示应用所有类加载器,数字表示加载的类个数。点击“过滤”可以过滤“sun.reflect.DelegatingClassLoader”加载器

1.3.5. 服务器

该tab展示服务器的监控概览信息和实时监控图表信息,服务器日志,环境变量等。如下图:

服务器概览信息

日志

展示系统日志,系统cron日志信息

1.3.6. 线程

动态线程

该tab展示了应用实时线程状态、以及线程快照信息

点击名称可以查询线程栈信息,点击线程栈的“查看反编译”可以实时查看类反编译

同时还可以对线程进行cpu耗时排序,“当前耗时”表示进入开始监控到当前时间的线程耗时,cpu耗时表示该线程总耗时,用户模式耗时表示该线程访问用户空间的耗时(除内核空间外)

线程快照

点击生成快照,将当前线程生成快照,然后可以在线程列表查看其他详细信息

点击详情进入该快照更多其他信息,如下图

展示了线程状态占比、方法占比

支持线程搜索,点击线程名查看线程具体栈信息

点击分析对各个类型线程分析统计处理,展示各个 线程运行、阻塞、等待、耗时、全局流水号等信息

top10

指定时间内实时采集线程耗时top10情况

选择采集间隔,点击“生成”按钮,等待时间间隔结束

生成线程top10,如下列表:

阻塞线程

查看当前阻塞其他线程的当前线程(同步锁引起的阻塞)

1.3.7. 内存快照

该tab展示了应用内存快照信息、点击生成快照生成实时快照

jvm信息:展示jvm基本信息

点击详情,查看内存快照各个对象大小

可以“过滤”按钮可以过滤java基础对象,反之可以恢复

点击相应的对象可以实时查看反编译信息

1.3.8. 一键Dump

该tab提供了线上生成javacore、日志、网络等信息,帮助定位排查问题

点击生成Dump文件,在以下弹框中选择dump范围、采集频率等信息。(dump生成需要时间点击之后可以通过Dump日志查看进度。同时dump列表会自动更新dump文件状态)

Dump范围:默认、自定义

默认:针对应用dump配置,可以在应用诊断列表dump功能进行修改

自定义:针对实例,自定义生成项

javaCore采集:采集频率、采集间隔时间

保存:dump选项被保存服务端,下次可以直接使用。

执行命令:开始执行dump

Dump日志

Dump过程中产生日志,点击清除可以清除当前日志信息,通过刷新查看最新日志信息

在dump列表中可以查看dump日志信息,下载dump文件,删除dump文件等操作

1.3.9. 堆内存Dump

提供堆内存dump功能

点击生成堆内存dump文件按钮,可以进行该应用堆内存dump。其他功能和一键dump类似,可以进行dump日志查看,dump文件下载和删除等

1.3.10. 类增强

该功能可以对已经加载类查询,统计类信息,在线反编译,业务类在线耗时监控,业务类class文件在线替换等。

操作上可以通过类名模糊搜索查询所有已经加载类列表,展示类名、加载器、类路径,然后进行反编译、链路、自定义等操作,如下说明

查询

查询该实例已经加载所有类信息,可以根据类名快速过滤相应类。对类进行反编译、链路、自定义等操作

反编译

利用CFR对类在线反编译,点击保存,持久化到NTC数据库中,如下图

然后在“保存”中可以查询到相应类信息,如下图

链路

对指定类指定方法在线监控方法耗时,方法参数,返回值。(该功能不开放对JDK内部类进行增强,防止影响JVM正常运行)

根据类名查询相应类,点击“链路”

如下图,选择相应方法和相应的增强功能,点击“增强”按钮

功能说明:

方法耗时:对监听方法内每个方法调用耗时进行实时监控,每当调用该方法通过查询即可显示每个方法栈耗时(没有具体到每个子方法)

方法参数、返回值:查询方法的实时参数和返回值

静态变量:查询类静态变量值

是否展示链路子方法参数和返回值:在使用“方法耗时”功能时,可以决定是否显示每个内部方法的参数类型和返回值

点击增强,如下图

(静态变量可以马上返回,无需等到方法被调用)

查询:点击查询查看最近一次调用该方法的耗时情况

结束:结束对该类的方法的监控

当方法被调用的时候,点击查询即可显示最近一次方法耗时情况,如下图说明:

自定义

支持类class文件在线替换(不支持新增或者删除方法)

选取相应类的class文件,点击“替换”即可,“替换并同步”表示同步到其他应用实例

已经替换的类,可以在“已增强”中进行还原原本类操作,如下:

说明:

更新:更换新的class文件

删除:还原原本类

统计

展示该实例类树、类冲突、代理类、内部类等

已增强

对使用链路或者自定义替换的类会在该tag进行展示,表示该类已经动态发生变动

保存

查看NTC中已经保存的反编译类

results matching ""

    No results matching ""