A Java library that uses AspectJ to declaratively add monitoring and tracing to your code, JDK, and third-party libraries.
Automon is a Java library that leverages Aspect-Oriented Programming (AOP) through AspectJ to add declarative monitoring and tracing capabilities to applications. It solves the problem of invasive code modifications for observability by allowing developers to instrument their code, the JDK, and third-party libraries without changing source files. The library acts as a bridge between AspectJ pointcuts and existing monitoring/logging tools like Micrometer, JAMon, or SLF4J.
Java developers and DevOps engineers who need to add performance monitoring, tracing, or exception tracking to their applications, especially those using Spring or working with complex third-party dependencies.
Developers choose Automon because it provides a non-invasive, declarative way to gain deep observability into their entire Java stack without modifying code. Its flexibility to work with multiple monitoring tools and ability to monitor JDK and third-party libraries sets it apart from manual instrumentation approaches.
Automon combines the power of AOP (AspectJ) with monitoring or logging tools you already use to declaratively trace and monitor your Java code, the JDK, and 3rd party libraries.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables monitoring and tracing without source code changes by leveraging AspectJ weaving, as emphasized in the README's philosophy and key features.
Works with various monitoring tools like Micrometer, JAMon, and StatsD, and tracing via SLF4J, allowing integration into diverse existing ecosystems.
Instruments JDK classes and third-party libraries through AspectJ pointcuts, providing observability beyond application code, as highlighted in the features.
Supports enabling or disabling monitoring via JMX, offering management flexibility without redeployment, as noted in the dynamic control feature.
Requires configuring AspectJ weaving (LTW or BTW) and integrating with external monitoring tools, which can be daunting for teams new to AOP.
AspectJ weaving introduces runtime overhead that may impact application performance, especially in latency-sensitive environments.
Automon is only a bridge; it relies on other tools for actual monitoring and tracing, adding setup and maintenance burden.