Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/igr/tdv
Thread Dump Analyzer
https://github.com/igr/tdv
thread-dump
Last synced: 9 days ago
JSON representation
Thread Dump Analyzer
- Host: GitHub
- URL: https://github.com/igr/tdv
- Owner: igr
- License: bsd-2-clause
- Created: 2024-03-02T19:52:07.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-03-27T21:28:22.000Z (7 months ago)
- Last Synced: 2024-10-14T10:48:51.210Z (23 days ago)
- Topics: thread-dump
- Language: Kotlin
- Homepage:
- Size: 1.09 MB
- Stars: 32
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Thread Dump Viewer
🚀 **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](https://www.buymeacoffee.com/oblac) :)
## Usage
Download the fat jar and run it:
```shell
java -jar tdv-X.Y.Z-all.jar [.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.## TDV Report
The report contains the following sections:
+ [Thread Stats](doc/report.md#-threads-stats) - general stats about threads (all, application, system)
+ [Tomcat](doc/report.md#-tomcat) - Tomcat stats (if detected)
+ [Daemon Stats](doc/report.md#-daemon-stats) - stats about daemon threads
+ [GC Stats](doc/report.md#-gc-stats) - stats about garbage collection
+ [Pools](doc/report.md#-pools) - detected thread pools
+ [Blocks](doc/report.md#-blocks) - thread blocking analysis
+ [Flamegraph](doc/report.md#-flamegraph) - interactive flamegraph of stack traces
+ [Call Tree](doc/report.md#-call-tree) - call tree
+ [Exceptions](doc/report.md#-exceptions) - all captured exceptions
+ [CPU consuming threads](doc/report.md#-cpu-consuming-threads) - threads sorted by CPU consumption
+ [Threads with identical stack trace](doc/report.md#-threads-with-identical-stack-trace)
+ [List of missing locks](doc/report.md#-list-of-missing-locks) - locks that are not released## TDV SQL Console
Yes, you can query the thread dump using SQL.
+ [SQL Console](doc/console.md)
## TODO
+ [X] 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?]