What is "Samurai"
Samurai is a tabbed GUI tail tool. The three major things Samurai does for you are
- Works as a GUI based and multi tabbed "tail -f"
- Picks up thread dumps from std/stderr output and visualize them.
- Visualizes "-verbose:gc" logs.
System Requirements
OS: Windows and any flavor of Unix like OS supports JDK 1.4 or later
Tested JVM to inspect: JDK 1.3.x,JDK 1.4.x,JDK5.0 based JVM provided by Apple, BEA, HP, Sun and IBM
Launching Samurai
There are two ways to launch Samurai. Choose suitable one.
- Launching Samurai via Java Web Start Java Web Start is a network based application launching protocol which comes with JRE1.4.2 or later.
- Command line
WIth Java Web Start you can create a desktop shortcut or a start menu item just like other native applications.
Another cool feature with Java Web Start is that it automatically checks the latest version upon every launch and ensures the latest version is installed.
You can just launch Samurai by clicking the icon below.
If you don't have any JRE installed on your system, you can simply click here(IE only and ActiveX required to be enabled) to install JRE1.5.
• Launch Samurai:
Java Web Start system will pop up a warning dialog on the first launch which alerts that the application could violate your PC's security.
Please click "Start" to proceed. It's because Samurai needs to get a permission to access your local filesystem which is necessary in reading log files.
I am NOT suggesting that you may launch any Java Web Start applications without any concerns. You need to be aware that technically a Java Web Start application could crack your PC and cause fatal casualties.
fig. 1 Security alert dialog
The binary is available for download at https://samuraism.jp/samurai/en/samurai.jar
You can simply double-click to launch Samurai on your desktop or type as following in your command prompt
$ java -jar samurai.jar
Automatic update is not available with this way.
Please check and download latest version manually.
Thread Dump View
- Initial view
- Thread dump tab
You'll see a window like fig.2. A tab named "Thread dump" will appear after you drag and drop a log file onto the window.
Currently drag and drop does not work on Linux environment. Use the file menu instead.
fig. 2 an initial view
When Samurai detects a thread dump in your log, a tab named "Thread Dump" will appear.
fig. 3 "Thread dump" tab
You can just click "Thread dumps" tab to see the analisys result.
Samurai colors idle threads in gray, blocked threds in red and running threds in green.
There are three result views and Samurai shows "Table view" by default.
In many case you are just interested in the table view and the sequence view. Use the table view to decide which thread needs be inspected, the sequence view to understand the thread's behavior.
You should take care especially threds always in red.
fig. 4 Table view
fig. 5 All thread view
fig. 6 Sequence view
Heap analysis View
Every JVM implimentation accepts "-verbose:gc" option which will show you the internal GC activity.
This is necessary when you check memory leaks, or decide if heap is allocated enough although the plain gc log is very hard to analyze.
Samurai gives you a nice and understandable view of the GC logs.
Red line stands for the heap usage before a GC.
Yellow one stands for the heap usage after a GC.
Gray one stands for the time spent for a GC.
You can copy the graph to your desktop clipboard by pressing Ctrl+C, or Cmd+C(Mac).
fig. 7 Memory tab
CSV View
Samurai provides you a realtime and visualized look of CSV files.
You can copy the graph to the system clipboard by pressing Ctrl+C (Mac -> Cmd+C).
fig. 8 CSV graph
Search Logs
Samurai is not only a thread dump analyzer but also a handy log viewr.
It works just like a GUI version of "tail -f filename", and you can search the text on the fly.
The searching function will be triggered when you type any texts.
A search result will be hilighted if there is any matches. You can press Ctrl+G(Mac: Cmd+G) or F3 for forward search, Shift+Ctrl+G(Mac: Shift+Cmd+G) for backward search.
You can also enable / disable the case sensitivity and regular expression.
fig. 10 hilighting a match
Source Code
The archive contains jar file along with source code.
You can access the project repository via http://yusuke.homeip.net/fisheye/browse/svn/samurai/trunk
Or you can check out the latest source code anonymously with a subversion client as follows:
svn checkout http://yusuke.homeip.net/svn/samurai/trunk samurai
Mailing list
Any comment, bug report, feature request or patch is highly welcomed.
Feel free to post your comments to the mailing list.
Subscribe to samurai-tool |
Visit this group |
Bugs
Known bugs and feature requests will be filed to the Jira site.Go to Jira
License
Samurai is released under the LGPL license.Samurai Copyright 2003-2008, Yusuke Yamamoto. Distributable under LGPL license. See terms of license at gnu.org.
Pricing
Samurai is an opensourced software and free of charge.You can use Samurai freely for any commercial or non-commercial project.
If you feel Samurai makes your life easier, please do consider making a donation!