Question

I am attempting to extract the data displayed in YourKit's "Threads" view (on thread state; primarily when each thread is "waiting" or "runnable"). I have used the command-line export utility to generate all of the formats for all of the views it supports.

Contained in the export directory is a file "Table--Thread-Life-Cycle--Name-History.csv". This seems the most likely to contain the information I require, but I cannot find documentation on the columns in the file.

For reference, the columns are:

ID  uptime_ns   thread  thread_name frame   top_method  top_non_filtered_method Thread_Life_Cycle_id    Name

A sample of the data for a single thread might be:

94  11879264791 57  Executor task launch worker-0   39131   java.lang.Thread.<init>(ThreadGroup, Runnable, String)  scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    52  Keep-Alive-Timer
95  11899612660 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)        53  Thread-34
96  11918630377 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    54  Thread-35
97  11942061861 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    55  Thread-36
98  11957367215 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    56  Thread-37
99  11971295215 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    57  Thread-38

There are plenty of other files in the export dump, but this seems the most promising. Should I be looking elsewhere? Can anyone shed light on the formats used in YJP's exported CSV?

Was it helpful?

Solution

Export of thread states (waiting, blocked, running, etc) is not supported yet in YourKit profiler. It's a planned feature.

Table--Thread-Life-Cycle--Name-History.csv is a export of "Thread Life Cycle" probe. It contains history of thread name changes only.

OTHER TIPS

In case anybody comes across this question, I figured I'd best share the workaround I used in the end (at least until YJP adds the feature).

The Gist at https://gist.github.com/anonymous/9970128 contains a quick-and-dirty OCR solution for extracting the thread state as simply running/not running from a screenshot of YJP. The constants might need some tuning, but it may prove helpful to some poor soul in a similar situation!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top