by olivergondza

Dumpling 1.0 released

Dumpling has finally reached version 1.0 lately. What are the coolest features?

Filtering threads with grep query

One of the most common uses of groovy command was filtering the ThreadSet based on a predicate. This is now made trivial. Instead of:

./dumpling.sh groovy --in ... ... <<< "runtime.threads.grep { it.name.contains 'messaging-14' }"

one can simply run:

 ./dumpling.sh grep "thread.name.contains 'messaging-14'" --in ... ...

Generate hotspot-like threaddump listing

Commands threaddump, grep and groovy now accept --porcelain option to generate thread listing compatible with hostpot’s jstack. If you need to process the results by some other tool, Dumpling is here to normalize any dump format it is able to parse into something other tools are much likely to understand.

Taking full advantage of different threaddump sources

Since 1.0, Dumpling uses generic data model internally allowing different threaddump sources to contribute subclasses for essential model classes. This opens whole lot of possibilities for the future to add information about contention monitoring or any other information given factory can discover.

One of the first advantages users can observe is that ProcessThread obtained via jvm runtime factory holds reference to the java.lang.Thread itself. Interrupting the thread(s) identified using dumpling is now easier than ever.

Tags: dumpling