Advanced Usage¶
Basic¶
help - display Arthas help
cls - clear the screen
cat - Concatenate and print files
grep - Pattern searcher
pwd - Return working directory name
session - display current session information
reset - reset all the enhanced classes. All enhanced classes will also be reset when Arthas server is closed by
stop/shutdown
version - print the version for the Arthas attached to the current Java process
history - view command history
quit/exit - exit the current Arthas session, without effecting other sessions
stop/shutdown - terminate the Arthas server, all Arthas sessions will be destroyed
keymap - keymap for Arthas keyboard shortcut
JVM¶
dashboard - dashboard for the system’s real-time data
thread - show java thread information
jvm - show JVM information
sysprop - view/modify system properties
sysenv — view system environment variables
vmoption - view/modify the vm diagnostic options.
logger - print the logger information, update the logger level
getstatic - examine class’s static properties
ognl - execute ongl expression
mbean - show Mbean information
heapdump - dump java heap in hprof binary format, like
jmap
class/classloader¶
sc - check the info for the classes loaded by JVM
sm - check methods info for the loaded classes
jad - decompile the specified loaded classes
mc - Memory compiler, compiles
.java
files into.class
files in memoryredefine - load external
*.class
files and re-define it into JVMdump - dump the loaded classes in byte code to the specified location
classloader - check the inheritance structure, urls, class loading info for the specified class; using classloader to get the url of the resource e.g.
java/lang/String.class
profiler/flame graph¶
profiler - use async-profiler to generate flame graph
pipe¶
Arthas provides pipe
to process the result returned from commands further, e.g. sm java.lang.String * | grep 'index'
. Commands supported in pipe
:
grep - filter the result with the given keyword
plaintext - remove the ANSI color
wc - count lines
async in background¶
async can be handy when a problem is hardly to reproduce in the production environment, e.g. one watch
condition may happen only once in one single day.
job control - use
>
to redirect result into the log file, use&
to put the job to the background. Job keeps running even if the session is disconnected (the session lifecycle is 1 day by default)jobs - list all jobs
kill - forcibly terminate the job
fg - bring the suspend job to the foreground
bg - put the job to run in the background
Web Console¶
Arthas supports living inside a browser. The communication between arthas and browser is via websocket.
User data report¶
After the 3.1.4
version, arthas support user data report.
At startup, use the stat-url
option, such as: ./as.sh --stat-url 'http://192.168.10.11:8080/api/stat'
There is a sample data report in the tunnel server that users can implement on their own.