Dumpling plugin for Jenkins brings Dumpling DSL capabilities into Jenkins
This plugin make Dumpling DSL available for:
- Groovy scripts all over Jenkins
- Other plugins
Capturing current Jenkins thread state should be as easy as calling
Dumpling.runtime
in script console/scriptler/groovy plugin step to
investigate or periodically monitor Jenkins threads. See Dumpling DSL
tutorial for more
information on how to use dumpling. Note that the DSL differs a bit in
Jenkins Groovy interpreters as the ability to configure is a bit
limited.
Useful scripts
General jstack-like threadddump:
println D.runtime.threads
// Or before 2.2
println Dumpling.runtime.threads
Detailed thread blockage report:
D.runtime.query(D.query.blockingTree().showStackTraces())
// Or before 2.2
import com.github.olivergondza.dumpling.query.*;
println Dumpling.runtime.query(new BlockingTree().showStackTraces());
Brief blockage report focused on HTTP handling threads:
import com.github.olivergondza.dumpling.query.*;
println Dumpling.runtime.threads.grep { it.name =~ /^Handling / }.query(new BlockingTree())
Capture threaddump of different java process (most likely on agent):
// List processes
println 'jps -l'.execute().text
// Print runtime
D.load.process(PID_NUMBER)
// Or before 2.2
new com.github.olivergondza.dumpling.factory.PidRuntimeFactory().fromProcess(PID_NUMBER);