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

370 lines
16 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.0.6-SNAPSHOT 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>
<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.0.6-SNAPSHOT
</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 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 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>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 <code class="docutils literal notranslate"><span class="pre">shutdown</span></code></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 external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/syspenv.md">sysenv</a> — view system environment variables</li>
<li><strong>New!</strong> <a class="reference internal" href="getstatic.html"><span class="doc">getstatic</span></a> :clap: - examine classs static properties</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="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="redefine.html"><span class="doc">redefine</span></a> - load external <code class="docutils literal notranslate"><span class="pre">*.class</span></code> files and re-define it into JVM</li>
<li><a class="reference internal" href="jad.html"><span class="doc">jad</span></a> - de-compile the specified loaded classes</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. <code class="docutils literal notranslate"><span class="pre">java/lang/String.class</span></code></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 <code class="docutils literal notranslate"><span class="pre">shutdown</span></code> or <code class="docutils literal notranslate"><span class="pre">reset</span></code>.</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 <code class="docutils literal notranslate"><span class="pre">pipe</span></code> to process the result returned from commands further, e.g. <code class="docutils literal notranslate"><span class="pre">sm</span> <span class="pre">org.apache.log4j.Logger</span> <span class="pre">|</span> <span class="pre">grep</span> <span class="pre">&lt;init&gt;</span></code>. Commands supported in <code class="docutils literal notranslate"><span class="pre">pipe</span></code>:</p>
<ul class="simple">
<li>grep - filter the result with the given keyword</li>
<li>plaintext - remove the 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 <code class="docutils literal notranslate"><span class="pre">watch</span></code> condition may happen only once in one single day.</p>
<ul class="simple">
<li>job control - use <code class="docutils literal notranslate"><span class="pre">&gt;</span></code> to redirect result into the log file, use <code class="docutils literal notranslate"><span class="pre">&amp;</span></code> 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, 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.0.6-SNAPSHOT',
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">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></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>