有啥方法可以监控 Java 应用程序的功能流?

Posted

技术标签:

【中文标题】有啥方法可以监控 Java 应用程序的功能流?【英文标题】:Any way to monitor a Java application's Function Flow?有什么方法可以监控 Java 应用程序的功能流? 【发布时间】:2019-03-08 06:41:50 【问题描述】:

在我的新任务中,我需要了解一个中级 Java 应用程序。为了更快地理解流程,我有一个想法,如果我能在运行时看到正在调用的函数,最终响应的是哪个函数,那么我真的可以在脑海中得到整个地图。

我使用过诸如 AppDynamics 之类的工具,它可以告诉延迟/数据库调用等。但我所关注的是可以告诉我运行时流程的东西。 喜欢,Controller.getStudent() -> Service.getStudent() -> Repository.getStudent() -> ....

我想知道是否有任何工具/技术。就像在调试模式下记录堆栈跟踪一样。我可以想象一个工具在做Thread.currentThread().getStackTrace()。有人对如何做到这一点有一些想法吗? (我使用的是 Springboot 和 Jboss)

编辑:我并没有真正关注日志记录、调试等。我觉得可能有一些东西可以告诉我们正在执行哪些功能。并确定是否有任何限制。

【问题讨论】:

在您的方法中添加日志记录,并遵循日志 使用 Spring-boot,您可以添加一个方面以在被调用的方法上自动添加跟踪 【参考方案1】:
@Aspect
@Component
public class FunctionTraceAspect 
    @Before("execution(* some.package.*.*.*(..))")
    public void appendUserContext(JoinPoint joinPoint) 
        System.out.println("TRACE: " + joinPoint.getSignature());
   

【讨论】:

以上是关于有啥方法可以监控 Java 应用程序的功能流?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以检测安卓软件后台偷偷联网

有啥方法可以监控 log4net 日志文件以获取应用程序洞察力

Flutter Agora - 当用户从最近的应用程序中杀死应用程序或丢弃应用程序时,有啥方法可以离开或结束广播流?

CommMonitor监听串口数据的时候出现下面这个问题是怎么回事?有啥解决的办法?

有啥方法可以重用 Stream 吗? [复制]

Java内存监控方法