java - 有什么方法可以监控 Java 应用程序的功能流程吗?

标签 java performance monitoring execution

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

我使用过像 AppDynamics 这样的工具,它可以告诉我延迟/数据库调用等。但我正在寻找的是能够告诉我运行时流程的东西。 就像,
Controller.getStudent() -> Service.getStudent() -> Repository.getStudent() -> ....

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

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

最佳答案

@Aspect
@Component
public class FunctionTraceAspect {
    @Before("execution(* some.package.*.*.*(..))")
    public void appendUserContext(JoinPoint joinPoint) {
        System.out.println("TRACE: " + joinPoint.getSignature());
   }
}

关于java - 有什么方法可以监控 Java 应用程序的功能流程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55057999/

相关文章:

Java 客户端线程池已满

unit-testing - 单元测试执行速度(每秒多少测试?)

android - 1GB RAM 的 iPhone 为何与 2GB RAM 的 Android 手机具有相似的性能

c - 最接近 POSIX 等待机制的 Windows 是什么?

java - 循环创建自定义字符串

java - 如何从 ListView 启动一个 Activity

java - 自定义外观 Nimbus

c++ - 如何在需要时将C++中的计算推迟?

performance - 用于 LAMP 的服务器性能指标工具

java缓存hashmap每天过期