Advanced Usage

Basic

  • help - display Arthas help

  • cls - clear the screen

  • cat - Concatenate and print files

  • [grep]](grep.md) - 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 memory

  • redefine - load external *.class files and re-define it into JVM

  • dump - 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

options

  • options - check/set Arthas global options

profiler/frame 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.

StatController.java