blob: 61cde05a97d9cafc7010d4fbc636e400e3d73c6c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_292) on Tue Jun 15 06:01:48 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LogThrottlingHelper (Apache Hadoop Common 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="LogThrottlingHelper (Apache Hadoop Common 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":9,"i2":10,"i3":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/LogThrottlingHelper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/hadoop/log/LogLevel.html" title="class in org.apache.hadoop.log"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/hadoop/log/LogThrottlingHelper.html" target="_top">Frames</a></li>
<li><a href="LogThrottlingHelper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.log</div>
<h2 title="Class LogThrottlingHelper" class="title">Class LogThrottlingHelper</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.log.LogThrottlingHelper</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">LogThrottlingHelper</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">This is a class to help easily throttle log statements, so that they will
not be emitted more frequently than a certain rate. It is useful to help
prevent flooding the application logs with redundant messages.
The instantiator specifies a minimum period at which statements should be
logged. When <a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-double...-"><code>record(double...)</code></a> is called, if enough time has elapsed
since the last time it was called, the return value will indicate to the
caller that it should write to its actual log. Note that this class does not
write to any actual log; it only records information about how many times
<code>record</code> has been called and with what arguments, and indicates to the
caller whether or not it should write to its log. If not enough time has yet
elapsed, this class records the arguments and updates its summary
information, and indicates to the caller that it should not log.
For example, say that you want to know whenever too large of a request is
received, but want to avoid flooding the logs if many such requests are
received.
<pre><code>
// Helper with a minimum period of 5 seconds
private LogThrottlingHelper helper = new LogThrottlingHelper(5000);
public void receiveRequest(int requestedObjects) {
if (requestedObjects &gt; MAXIMUM_REQUEST_SIZE) {
LogAction logAction = helper.record(requestedObjects);
if (logAction.shouldLog()) {
LOG.warn("Received {} large request(s) with a total of {} objects " +
"requested; maximum objects requested was {}",
logAction.getCount(), logAction.getStats(0).getSum(),
logAction.getStats(0).getMax());
}
}
}
</code></pre>
The above snippet allows you to record extraneous events, but if they become
frequent, to limit their presence in the log to only every 5 seconds while
still maintaining overall information about how many large requests were
received.
<p>This class can also be used to coordinate multiple logging points; see
<a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-java.lang.String-long-double...-"><code>record(String, long, double...)</code></a> for more details.
<p>This class is not thread-safe.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a></span></code>
<div class="block">An indication of what action the caller should take.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#DO_NOT_LOG">DO_NOT_LOG</a></span></code>
<div class="block">A <a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log"><code>LogThrottlingHelper.LogAction</code></a> representing a state that should not yet be logged.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#LogThrottlingHelper-long-">LogThrottlingHelper</a></span>(long&nbsp;minLogPeriodMs)</code>
<div class="block">Create a log helper without any primary recorder.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#LogThrottlingHelper-long-java.lang.String-">LogThrottlingHelper</a></span>(long&nbsp;minLogPeriodMs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;primaryRecorderName)</code>
<div class="block">Create a log helper with a specified primary recorder name; this can be
used in conjunction with <a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-java.lang.String-long-double...-"><code>record(String, long, double...)</code></a> to set up
primary and dependent recorders.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>org.apache.commons.math3.stat.descriptive.SummaryStatistics</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#getCurrentStats-java.lang.String-int-">getCurrentStats</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;recorderName,
int&nbsp;idx)</code>
<div class="block">Return the summary information for given index.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#getLogSupressionMessage-org.apache.hadoop.log.LogThrottlingHelper.LogAction-">getLogSupressionMessage</a></span>(<a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a>&nbsp;action)</code>
<div class="block">Helper function to create a message about how many log statements were
suppressed in the provided log action.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-double...-">record</a></span>(double...&nbsp;values)</code>
<div class="block">Record some set of values at the current time into this helper.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-java.lang.String-long-double...-">record</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;recorderName,
long&nbsp;currentTimeMs,
double...&nbsp;values)</code>
<div class="block">Record some set of values at the specified time into this helper.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DO_NOT_LOG">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DO_NOT_LOG</h4>
<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a> DO_NOT_LOG</pre>
<div class="block">A <a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log"><code>LogThrottlingHelper.LogAction</code></a> representing a state that should not yet be logged.
If any attempt is made to extract information from this, it will throw
an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang"><code>IllegalStateException</code></a>.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="LogThrottlingHelper-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LogThrottlingHelper</h4>
<pre>public&nbsp;LogThrottlingHelper(long&nbsp;minLogPeriodMs)</pre>
<div class="block">Create a log helper without any primary recorder.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#LogThrottlingHelper-long-java.lang.String-"><code>LogThrottlingHelper(long, String)</code></a></dd>
</dl>
</li>
</ul>
<a name="LogThrottlingHelper-long-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LogThrottlingHelper</h4>
<pre>public&nbsp;LogThrottlingHelper(long&nbsp;minLogPeriodMs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;primaryRecorderName)</pre>
<div class="block">Create a log helper with a specified primary recorder name; this can be
used in conjunction with <a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-java.lang.String-long-double...-"><code>record(String, long, double...)</code></a> to set up
primary and dependent recorders. See
<a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-java.lang.String-long-double...-"><code>record(String, long, double...)</code></a> for more details.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>minLogPeriodMs</code> - The minimum period with which to log; do not log
more frequently than this.</dd>
<dd><code>primaryRecorderName</code> - The name of the primary recorder.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="record-double...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>record</h4>
<pre>public&nbsp;<a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a>&nbsp;record(double...&nbsp;values)</pre>
<div class="block">Record some set of values at the current time into this helper. Note that
this does <i>not</i> actually write information to any log. Instead, this
will return a LogAction indicating whether or not the caller should write
to its own log. The LogAction will additionally contain summary information
about the values specified since the last time the caller was expected to
write to its log.
<p>Specifying multiple values will maintain separate summary statistics
about each value. For example:
<pre><code>
helper.record(1, 0);
LogAction action = helper.record(3, 100);
action.getStats(0); // == 2
action.getStats(1); // == 50
</code></pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - The values about which to maintain summary information. Every
time this method is called, the same number of values must
be specified.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A LogAction indicating whether or not the caller should write to
its log.</dd>
</dl>
</li>
</ul>
<a name="record-java.lang.String-long-double...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>record</h4>
<pre>public&nbsp;<a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a>&nbsp;record(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;recorderName,
long&nbsp;currentTimeMs,
double...&nbsp;values)</pre>
<div class="block">Record some set of values at the specified time into this helper. This can
be useful to avoid fetching the current time twice if the caller has
already done so for other purposes. This additionally allows the caller to
specify a name for this recorder. When multiple names are used, one is
denoted as the primary recorder. Only recorders named as the primary
will trigger logging; other names not matching the primary can <i>only</i>
be triggered by following the primary. This is used to coordinate multiple
logging points. A primary can be set via the
<a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#LogThrottlingHelper-long-java.lang.String-"><code>LogThrottlingHelper(long, String)</code></a> constructor. If no primary
is set in the constructor, then the first recorder name used becomes the
primary.
If multiple names are used, they maintain entirely different sets of values
and summary information. For example:
<pre><code>
// Initialize "pre" as the primary recorder name
LogThrottlingHelper helper = new LogThrottlingHelper(1000, "pre");
LogAction preLog = helper.record("pre", Time.monotonicNow());
if (preLog.shouldLog()) {
// ...
}
double eventsProcessed = ... // perform some action
LogAction postLog =
helper.record("post", Time.monotonicNow(), eventsProcessed);
if (postLog.shouldLog()) {
// ...
// Can use postLog.getStats(0) to access eventsProcessed information
}
</code></pre>
Since "pre" is the primary recorder name, logging to "pre" will trigger a
log action if enough time has elapsed. This will indicate that "post"
should log as well. This ensures that "post" is always logged in the same
iteration as "pre", yet each one is able to maintain its own summary
information.
<p>Other behavior is the same as <a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-double...-"><code>record(double...)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>recorderName</code> - The name of the recorder. This is used to check if the
current recorder is the primary. Other names are
arbitrary and are only used to differentiate between
distinct recorders.</dd>
<dd><code>currentTimeMs</code> - The current time.</dd>
<dd><code>values</code> - The values to log.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The LogAction for the specified recorder.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.html#record-double...-"><code>record(double...)</code></a></dd>
</dl>
</li>
</ul>
<a name="getCurrentStats-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentStats</h4>
<pre>public&nbsp;org.apache.commons.math3.stat.descriptive.SummaryStatistics&nbsp;getCurrentStats(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;recorderName,
int&nbsp;idx)</pre>
<div class="block">Return the summary information for given index.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>recorderName</code> - The name of the recorder.</dd>
<dd><code>idx</code> - The index value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The summary information.</dd>
</dl>
</li>
</ul>
<a name="getLogSupressionMessage-org.apache.hadoop.log.LogThrottlingHelper.LogAction-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getLogSupressionMessage</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getLogSupressionMessage(<a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log">LogThrottlingHelper.LogAction</a>&nbsp;action)</pre>
<div class="block">Helper function to create a message about how many log statements were
suppressed in the provided log action. If no statements were suppressed,
this returns an empty string. The message has the format (without quotes):
<p>' (suppressed logging <i>{suppression_count}</i> times)'</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>action</code> - The log action to produce a message about.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A message about suppression within this action.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/LogThrottlingHelper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/hadoop/log/LogLevel.html" title="class in org.apache.hadoop.log"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/hadoop/log/LogThrottlingHelper.LogAction.html" title="interface in org.apache.hadoop.log"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/hadoop/log/LogThrottlingHelper.html" target="_top">Frames</a></li>
<li><a href="LogThrottlingHelper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>