Td User Manual: Difference between revisions
(36 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Internal= | =Internal= | ||
* [[ | * [[events-java-threads#User_Manual|events-java-threads]] | ||
{{Error|REFACTOR}} | |||
=NEW SYNTAX= | |||
td <''field-name''>:<''regex''> [''procedure''] ./stacks.txt | |||
Fields: | |||
* ''thread-name'' | |||
* ''os-prio'' | |||
* ''prio'' | |||
* ''tid'' | |||
* ''nid'' | |||
* ''thread-state'' | |||
* ''daemon'' | |||
* ''object-wait-monitor'' | |||
* ''stack'' | |||
==Generic Procedures== | |||
====count==== | |||
<font color=red>TODO - link</font> | |||
====describe==== | |||
<font color=red>TODO - link</font> | |||
====exclude==== | |||
<font color=red>TODO - link</font> | |||
====output==== | |||
<font color=red>TODO - link</font> | |||
====timegaps==== | |||
<font color=red>TODO - link</font> | |||
==td Specific Procedures== | |||
====count==== | |||
Counts the number of stack traces (possibly only those that matched the query, if a query was used) per thread dump, in a time series CSV format. | |||
====names==== | |||
Thread dump names, alphabetically (subject to query). | |||
{{Error|REFACTOR}} | |||
=Overview= | =Overview= | ||
tda (Thread Dump Analyzer) is a command-line utility that can be used to process Java thread dumps. | |||
This documentation defines a [[Java_Threads#Thread_Dump|thread dump]] as the result of one invocation of the [[jstack]] command, or of sending [[Linux_Signals#SIGQUIT_.283.29|SIGQUIT]] (-3) into the Java virtual machine process. A thread dump consists in a set of [[Java_Threads#Stack_Trace|stack traces]], one stack trace for each thread in the Java virtual machine. | |||
tda works by default in a manner [[#grep_Mode|similar to grep]], processing the thread dump file sequentially, one thread dump at a time. Multiple thread dumps (i.e. the result of multiple invocations, at different moments in time), may be present in the file, and tda distinguishes this situation, by handling each thread dump individually. Once the stack trances are parsed, tda matches their content against the given regular expression and displays the stack traces that match. | |||
The regular expression uses the grep syntax. More details about supported regular expressions are available in the "[[#Regular_Expression_Syntax|Regular Expression Syntax]]" section. | |||
=Syntax= | =Syntax= | ||
tda [options] | tda [options] [regex|command] <thread-dump-file> [thread-dump-file, ...] | ||
=grep Mode= | =grep Mode= | ||
Line 21: | Line 80: | ||
==-c== | ==-c== | ||
Counts the number of threads that match the regular expression, and display the number. If only the file name is specified, the regular expression is assumed to be "match all" | Counts the number of threads that match the regular expression, and display the number. If only the file name is specified, the regular expression is assumed to be "match all". | ||
==-v== | ==-v== | ||
Line 33: | Line 90: | ||
tda is designed to use the same regular expressions as grep. | tda is designed to use the same regular expressions as grep. | ||
If the regular expression contains spaces, it can be specified on command line by enclosing it in double quotes: double quotes preserve spaces, which are passed as such to the Java runtime: | |||
tda "on object monitor" thread-dump-file.txt | |||
Other | =Other Commands= | ||
==split== | |||
Extracts individual thread dumps from the a thread dump file that contains a concatenation of multiple thread dumps, and places them into separate files. The files are named based on the counter and timestamp (if available). | |||
==diff== | |||
tda diff ''<thread-dump-file1.out>'' ''<thread-dump-file2.out>'' | |||
The current implementation of the diff command compares two thread dumps and displays the names of the threads that are found in one dump, but not in another, based on a TID comparison. | |||
==version== | |||
Displays the tda version. | |||
= | ==help== | ||
Displays a brief in-line help that contains a link to this page. | |||
= | =Extensions= | ||
--<ExtensionClassName> | |||
--FSI, | |||
--FFM | |||
where the class should be available in com/novaordis/universus/tdanalyzer/extensions. | |||
<font color=red>To review this.</font> |
Latest revision as of 08:20, 30 November 2017
Internal
REFACTOR
NEW SYNTAX
td <field-name>:<regex> [procedure] ./stacks.txt
Fields:
- thread-name
- os-prio
- prio
- tid
- nid
- thread-state
- daemon
- object-wait-monitor
- stack
Generic Procedures
count
TODO - link
describe
TODO - link
exclude
TODO - link
output
TODO - link
timegaps
TODO - link
td Specific Procedures
count
Counts the number of stack traces (possibly only those that matched the query, if a query was used) per thread dump, in a time series CSV format.
names
Thread dump names, alphabetically (subject to query).
REFACTOR
Overview
tda (Thread Dump Analyzer) is a command-line utility that can be used to process Java thread dumps.
This documentation defines a thread dump as the result of one invocation of the jstack command, or of sending SIGQUIT (-3) into the Java virtual machine process. A thread dump consists in a set of stack traces, one stack trace for each thread in the Java virtual machine.
tda works by default in a manner similar to grep, processing the thread dump file sequentially, one thread dump at a time. Multiple thread dumps (i.e. the result of multiple invocations, at different moments in time), may be present in the file, and tda distinguishes this situation, by handling each thread dump individually. Once the stack trances are parsed, tda matches their content against the given regular expression and displays the stack traces that match.
The regular expression uses the grep syntax. More details about supported regular expressions are available in the "Regular Expression Syntax" section.
Syntax
tda [options] [regex|command] <thread-dump-file> [thread-dump-file, ...]
grep Mode
The utility filters and displays at standard output only the stack traces that match the given regular expression. For example:
tda http- thread-dump-file.txt
will display at stdout only the stack traces that contain "http-", anywhere in the stack trace, including method invocation lines. The regular expression is optional. If missing, all stack traces present in the file will be displayed. The output can be modified with the following options:
-c
Counts the number of threads that match the regular expression, and display the number. If only the file name is specified, the regular expression is assumed to be "match all".
-v
Invert match. Select the stack traces that do not match the regular expression.
Regular Expression Syntax
tda is designed to use the same regular expressions as grep.
If the regular expression contains spaces, it can be specified on command line by enclosing it in double quotes: double quotes preserve spaces, which are passed as such to the Java runtime:
tda "on object monitor" thread-dump-file.txt
Other Commands
split
Extracts individual thread dumps from the a thread dump file that contains a concatenation of multiple thread dumps, and places them into separate files. The files are named based on the counter and timestamp (if available).
diff
tda diff <thread-dump-file1.out> <thread-dump-file2.out>
The current implementation of the diff command compares two thread dumps and displays the names of the threads that are found in one dump, but not in another, based on a TID comparison.
version
Displays the tda version.
help
Displays a brief in-line help that contains a link to this page.
Extensions
--<ExtensionClassName>
--FSI, --FFM
where the class should be available in com/novaordis/universus/tdanalyzer/extensions.
To review this.