<!DOCTYPE html>
<!-- [if IE 8]><html class="no - js lt - ie9" lang="en" > <![endif] -->
<!-- [if gt IE 8]><! --> < html class = "no-js" lang = "en" > <!-- <![endif] -->
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > Advanced Usage — Arthas 3.1.0 documentation< / title >
< link rel = "shortcut icon" href = "_static/favicon.ico" / >
< link rel = "stylesheet" href = "_static/css/theme.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/pygments.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/overrides.css" type = "text/css" / >
< link rel = "index" title = "Index" href = "genindex.html" / >
< link rel = "search" title = "Search" href = "search.html" / >
< link rel = "next" title = "Web Console" href = "web-console.html" / >
< link rel = "prev" title = "Quick Start" href = "quick-start.html" / >
< script src = "_static/center_page.js" > < / script >
< link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css" >
< script src = "_static/js/modernizr.min.js" > < / script >
< / head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
< a href = "index.html" class = "icon icon-home" > Arthas
< / a >
< div class = "version" >
3.1.0
< / div >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div >
< div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "main navigation" >
< ul class = "current" >
< li class = "toctree-l1" > < a class = "reference external" href = "https://alibaba.github.io/arthas/arthas-tutorials?language=en" > Online tutorials(Recommend)< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "install-detail.html" > Installation< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "quick-start.html" > Quick start< / a > < / li >
< li class = "toctree-l1 current" > < a class = "current reference internal" href = "#" > Advanced usage< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "#basic" > Basic< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#jvm" > JVM< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#class-classloader" > class/classloader< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#monitor-watch-trace-related" > monitor/watch/trace - related< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#options" > options< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#pipe" > pipe< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#async-in-background" > async in background< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#web-console" > Web Console< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "web-console.html" > Web Console< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#other-features" > Other features< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "async.html" > Async support< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "save-log.html" > log the output< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "batch-support.html" > batch< / a > < / li >
< li class = "toctree-l3" > < a class = "reference external" href = "https://github.com/alibaba/arthas/issues/11" > how to use ognl< / a > < / li >
< / ul >
< / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "commands.html" > Commands< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "docker.html" > Docker< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas/issues?q=label%3Auser-case" > User cases< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered" > Questions and answers< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas" > Fork me at GitHub< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md" > CONTRIBUTING< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "release-notes.html" > Release Notes< / a > < / li >
< / ul >
< / div >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" >
< nav class = "wy-nav-top" aria-label = "top navigation" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "index.html" > Arthas< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
< div role = "navigation" aria-label = "breadcrumbs navigation" >
< ul class = "wy-breadcrumbs" >
< li > < a href = "index.html" > Docs< / a > » < / li >
< li > Advanced Usage< / li >
< li class = "wy-breadcrumbs-aside" >
< a href = "https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/en/advanced-use.md" class = "fa fa-github" > Edit on GitHub< / a >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
< div class = "section" id = "advanced-usage" >
< span id = "advanced-usage" > < / span > < h1 > Advanced Usage< a class = "headerlink" href = "#advanced-usage" title = "Permalink to this headline" > ¶< / a > < / h1 >
< div class = "section" id = "basic" >
< span id = "basic" > < / span > < h2 > Basic< a class = "headerlink" href = "#basic" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul class = "simple" >
< li > help - display Arthas help< / li >
< li > cls - clear the screen< / li >
< li > < a class = "reference internal" href = "cat.html" > < span class = "doc" > cat< / span > < / a > - Concatenate and print files< / li >
< li > < a class = "reference internal" href = "pwd.html" > < span class = "doc" > pwd< / span > < / a > - Return working directory name< / li >
< li > session - display current session information< / li >
< li > < a class = "reference internal" href = "reset.html" > < span class = "doc" > reset< / span > < / a > - reset all the enhanced classes. All enhanced classes will also be reset when Arthas server is closed by < tt class = "docutils literal" > shutdown< / tt > < / li >
< li > version - print the version for the Arthas attached to the current Java process< / li >
< li > history - view command history< / li >
< li > quit/exit - exit the current Arthas session, without effecting other sessions< / li >
< li > shutdown - terminate the Arthas server, all Arthas sessions will be destroyed< / li >
< li > < a class = "reference internal" href = "keymap.html" > < span class = "doc" > keymap< / span > < / a > - keymap for Arthas keyboard shortcut< / li >
< / ul >
< / div >
< div class = "section" id = "jvm" >
< span id = "jvm" > < / span > < h2 > JVM< a class = "headerlink" href = "#jvm" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul class = "simple" >
< li > < a class = "reference internal" href = "dashboard.html" > < span class = "doc" > dashboard< / span > < / a > - dashboard for the system’ s real-time data< / li >
< li > < a class = "reference internal" href = "thread.html" > < span class = "doc" > thread< / span > < / a > - show java thread information< / li >
< li > < a class = "reference internal" href = "jvm.html" > < span class = "doc" > jvm< / span > < / a > - show JVM information< / li >
< li > < a class = "reference internal" href = "sysprop.html" > < span class = "doc" > sysprop< / span > < / a > - view/modify system properties< / li >
< li > < a class = "reference internal" href = "sysenv.html" > < span class = "doc" > sysenv< / span > < / a > — view system environment variables< / li >
< li > < strong > New!< / strong > < a class = "reference internal" href = "getstatic.html" > < span class = "doc" > getstatic< / span > < / a > - examine class’ s static properties< / li >
< li > < strong > New!< / strong > < a class = "reference internal" href = "ognl.html" > < span class = "doc" > ognl< / span > < / a > - execute ongl expression< / li >
< / ul >
< / div >
< div class = "section" id = "class-classloader" >
< span id = "class-classloader" > < / span > < h2 > class/classloader< a class = "headerlink" href = "#class-classloader" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul class = "simple" >
< li > < a class = "reference internal" href = "sc.html" > < span class = "doc" > sc< / span > < / a > - check the info for the classes loaded by JVM< / li >
< li > < a class = "reference internal" href = "sm.html" > < span class = "doc" > sm< / span > < / a > - check methods info for the loaded classes< / li >
< li > < a class = "reference internal" href = "jad.html" > < span class = "doc" > jad< / span > < / a > - decompile the specified loaded classes< / li >
< li > < a class = "reference internal" href = "mc.html" > < span class = "doc" > mc< / span > < / a > - Memory compiler, compiles < tt class = "docutils literal" > .java< / tt > files into < tt class = "docutils literal" > .class< / tt > files in memory< / li >
< li > < a class = "reference internal" href = "redefine.html" > < span class = "doc" > redefine< / span > < / a > - load external < tt class = "docutils literal" > *.class< / tt > files and re-define it into JVM< / li >
< li > < a class = "reference internal" href = "dump.html" > < span class = "doc" > dump< / span > < / a > - dump the loaded classes in byte code to the specified location< / li >
< li > < a class = "reference internal" href = "classloader.html" > < span class = "doc" > classloader< / span > < / a > - check the inheritance structure, urls, class loading info for the specified class; using classloader to get the url of the resource e.g. < tt class = "docutils literal" > java/lang/String.class< / tt > < / li >
< / ul >
< / div >
< div class = "section" id = "monitor-watch-trace-related" >
< span id = "monitor-watch-trace-related" > < / span > < h2 > monitor/watch/trace - related< a class = "headerlink" href = "#monitor-watch-trace-related" title = "Permalink to this headline" > ¶< / a > < / h2 >
< blockquote >
< div > < strong > Attention< / strong > : commands here are taking advantage of byte-code-injection, which means we are injecting some < a class = "reference external" href = "https://en.wikipedia.org/wiki/Aspect-oriented_programming" > aspects< / a > into the current classes for monitoring and statistics purpose. Therefore when use it for online troubleshooting in your production environment, you’ d better < strong > explicitly specify< / strong > classes/methods/criteria, and remember to remove the injected code by < tt class = "docutils literal" > shutdown< / tt > or < tt class = "docutils literal" > reset< / tt > .< / div > < / blockquote >
< ul class = "simple" >
< li > < a class = "reference internal" href = "monitor.html" > < span class = "doc" > monitor< / span > < / a > - monitor method execution statistics< / li >
< li > < a class = "reference internal" href = "watch.html" > < span class = "doc" > watch< / span > < / a > - display the input/output parameter, return object, and thrown exception of specified method invocation< / li >
< li > < a class = "reference internal" href = "trace.html" > < span class = "doc" > trace< / span > < / a > - trace the execution time of specified method invocation< / li >
< li > < a class = "reference internal" href = "stack.html" > < span class = "doc" > stack< / span > < / a > - display the stack trace for the specified class and method< / li >
< li > < a class = "reference internal" href = "tt.html" > < span class = "doc" > tt< / span > < / a > - time tunnel, record the arguments and returned value for the methods and replay< / li >
< / ul >
< / div >
< div class = "section" id = "options" >
< span id = "options" > < / span > < h2 > options< a class = "headerlink" href = "#options" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul class = "simple" >
< li > < a class = "reference internal" href = "options.html" > < span class = "doc" > options< / span > < / a > - check/set Arthas global options< / li >
< / ul >
< / div >
< div class = "section" id = "pipe" >
< span id = "pipe" > < / span > < h2 > pipe< a class = "headerlink" href = "#pipe" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > Arthas provides < tt class = "docutils literal" > pipe< / tt > to process the result returned from commands further, e.g. < tt class = "docutils literal" > sm java.lang.String * | grep 'index'< / tt > . Commands supported in < tt class = "docutils literal" > pipe< / tt > :< / p >
< ul class = "simple" >
< li > grep - filter the result with the given keyword< / li >
< li > plaintext - remove the ANSI color< / li >
< li > wc - count lines< / li >
< / ul >
< / div >
< div class = "section" id = "async-in-background" >
< span id = "async-in-background" > < / span > < h2 > async in background< a class = "headerlink" href = "#async-in-background" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > < a class = "reference internal" href = "async.html" > < span class = "doc" > async< / span > < / a > can be handy when a problem is hardly to reproduce in the production environment, e.g. one < tt class = "docutils literal" > watch< / tt > condition may happen only once in one single day.< / p >
< ul class = "simple" >
< li > job control - use < tt class = "docutils literal" > >< / tt > to redirect result into the log file, use < tt class = "docutils literal" > & < / tt > to put the job to the background. Job keeps running even if the session is disconnected (the session lifecycle is 1 day by default)< / li >
< li > jobs - list all jobs< / li >
< li > kill - forcibly terminate the job< / li >
< li > fg - bring the suspend job to the foreground< / li >
< li > bg - put the job to run in the background< / li >
< / ul >
< / div >
< div class = "section" id = "web-console" >
< span id = "web-console" > < / span > < h2 > Web Console< a class = "headerlink" href = "#web-console" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > Arthas supports living inside a browser. The communication between arthas and browser is via websocket.< / p >
< div class = "toctree-wrapper compound" >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "web-console.html" > Web Console< / a > < / li >
< / ul >
< / div >
< / div >
< div class = "section" id = "other-features" >
< span id = "other-features" > < / span > < h2 > Other features< a class = "headerlink" href = "#other-features" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "toctree-wrapper compound" >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "async.html" > Async support< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "save-log.html" > log the output< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "batch-support.html" > batch< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas/issues/11" > how to use ognl< / a > < / li >
< / ul >
< / div >
< / div >
< / div >
< / div >
< / div >
< footer >
< div class = "rst-footer-buttons" role = "navigation" aria-label = "footer navigation" >
< a href = "web-console.html" class = "btn btn-neutral float-right" title = "Web Console" accesskey = "n" rel = "next" > Next < span class = "fa fa-arrow-circle-right" > < / span > < / a >
< a href = "quick-start.html" class = "btn btn-neutral" title = "Quick Start" accesskey = "p" rel = "prev" > < span class = "fa fa-arrow-circle-left" > < / span > Previous< / a >
< / div >
< hr / >
< div role = "contentinfo" >
< p >
© Copyright 2018, Alibaba Middleware Group, and contributors.
< / p >
< / div >
Built with < a href = "http://sphinx-doc.org/" > Sphinx< / a > using a < a href = "https://github.com/rtfd/sphinx_rtd_theme" > theme< / a > provided by < a href = "https://readthedocs.org" > Read the Docs< / a > .
< / footer >
< / div >
< / div >
< / section >
< / div >
< script type = "text/javascript" >
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.1.0',
LANGUAGE:'en',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
< / script >
< script type = "text/javascript" src = "_static/jquery.js" > < / script >
< script type = "text/javascript" src = "_static/underscore.js" > < / script >
< script type = "text/javascript" src = "_static/doctools.js" > < / script >
< script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML" > < / script >
< script type = "text/javascript" src = "_static/js/theme.js" > < / script >
< script type = "text/javascript" >
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
< / script >
< div class = "github-fork-ribbon-wrapper right" >
< div class = "github-fork-ribbon" >
< a href = "https://github.com/alibaba/arthas" target = "_blank" > Fork me at GitHub< / a >
< / div >
< / div >
< script type = "text/javascript" src = "_static/add_badges.js" > < / script >
< script src = "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js" > < / script >
< script src = "https://cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.5.0/highlightjs-line-numbers.min.js" > < / script >
< script >
document.querySelectorAll('div.hljs > pre').forEach(function(block) {
hljs.highlightBlock(block);
hljs.lineNumbersBlock(block);
});
< / script >
< script >
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
< / script >
< / body >
< / html >