🚀 Offline Thread Dump Analyzer.
Disclaimer: While I am making this for my own use, I will try to fix reported issues, as much time allows me to 🤷♂️.
☕️ You can still buy me a coffee :)
Download the fat jar and run it:
java -jar tdv-X.Y.Z-all.jar <thread-dump-file>[.gz]
The input may be a 1) raw thread dump or 2) a gzipped thread dump.
The report will be generated in the out
subfolder as HTML file.
It is a huge report, and it is not beautiful, but it is functional.
The report contains the following sections:
- Thread Stats - general stats about threads (all, application, system)
- Tomcat - Tomcat stats (if detected)
- Daemon Stats - stats about daemon threads
- GC Stats - stats about garbage collection
- Pools - detected thread pools
- Blocks - thread blocking analysis
- Flamegraph - interactive flamegraph of stack traces
- Call Tree - call tree
- Exceptions - all captured exceptions
- CPU consuming threads - threads sorted by CPU consumption
- Threads with identical stack trace
- List of missing locks - locks that are not released
Yes, you can query the thread dump using SQL.
- Stats per thread pool
- Deadlocks detection (as soon as I get a thread dump with a deadlock)
- Detect complex deadlocks (e.g. A -> B -> C -> A)
- Thread histogram per priorities
- Latest executed methods?]