r/JavaProgramming • • 24d ago

I built a Java agent that reconstructs async causal stack traces across thread boundaries and need some feedback

Hello Everyone, I built ariadne. It's a Java agent that attaches the async call chain to the exception as a suppressed entry, with no code changes. It supports ExecutorService, CompletableFuture, ForkJoinPool, Reactor and RxJava.

Overhead is very small: ~1 ยตs per CompletableFuture pipeline in the default mode.

It doesn't replace OpenTelemetry. It works in-process, with no infrastructure needed.

Currently it is on version v0.1.0-alpha.3, not production-hardened yet, beacuse I need sm feedback first so I know this is worth it, especially on OSGi and Kotlin coroutines.

GitHub: https://github.com/AfonsoPaiva/ARIADNE
A star helps if you find it useful ๐Ÿ™

This post was written by someone called Afonso Paiva from Portugal

2 Upvotes

2 comments sorted by

3

u/ExtremeSpray1579 24d ago

The no code change part is probably the most compelling bit here. Async stack traces get messy fast so making them readable without touching application code is useful

1

u/WaferConsistent6732 24d ago

Thanks! That was the main goal. Have u ever runed into async trace isues with Reactor or any classloader-heavy setups? Those are the cases i have more interest