You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
arthas/en/advanced-use.html

387 lines
17 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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 &mdash; Arthas 3.1.1 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.1
</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> &raquo;</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 systems 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><a class="reference internal" href="getstatic.html"><span class="doc">getstatic</span></a> - examine classs static properties</li>
<li><strong>New!</strong> <a class="reference internal" href="ognl.html"><span class="doc">ognl</span></a> - execute ongl expression</li>
<li><strong>New!</strong> <a class="reference internal" href="mbean.html"><span class="doc">mbean</span></a> - show Mbean information</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, youd 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>
&copy; Copyright 2018-2019, 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.1',
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>