blob: 646b6b9348ac0dd1ac907a1bd55fe7b1b3eb8c89 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.18) on Wed Mar 01 02:01:42 GMT 2023 -->
<title>GlobalMetrics (Heron Java API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2023-03-01">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GlobalMetrics (Heron Java API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":10,"i5":9,"i6":9,"i7":9,"i8":9};
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";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.heron.api.metric</a></div>
<h2 title="Enum GlobalMetrics" class="title">Enum GlobalMetrics</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>java.lang.Enum&lt;<a href="GlobalMetrics.html" title="enum in org.apache.heron.api.metric">GlobalMetrics</a>&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.heron.api.metric.GlobalMetrics</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="GlobalMetrics.html" title="enum in org.apache.heron.api.metric">GlobalMetrics</a>&gt;</code></dd>
</dl>
<hr>
<pre>public enum <span class="typeNameLabel">GlobalMetrics</span>
extends java.lang.Enum&lt;<a href="GlobalMetrics.html" title="enum in org.apache.heron.api.metric">GlobalMetrics</a>&gt;
implements java.io.Serializable</pre>
<div class="block">Singleton class which exposes a simple globally available counter for heron jobs.
Anywhere in the execution of heron job, user can put-
<code>GlobalMetrics.incr("mycounter")</code> to add a counter. There will be no need to
explicitly declare the counter before. If the counter doesn't exist it will be created.
The creation is lazy which means, unless the counter not being available, it is counted as 0
CounterFactory.init() should be called in prepare and open methods of bolt and spout respectively.
The counters will be named __auto__/mycounter (note the __auto__ prefix)</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="enum.constant.summary">
<!-- -->
</a>
<h3>Enum Constant Summary</h3>
<table class="memberSummary">
<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum Constant</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#INSTANCE">INSTANCE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ROOT_NAME">ROOT_NAME</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="MultiCountMetric.html" title="class in org.apache.heron.api.metric">MultiCountMetric</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUnderlyingCounter()">getUnderlyingCounter</a></span>()</code></th>
<td class="colLast">
<div class="block">test-only</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#incr(java.lang.String)">incr</a></span>&#8203;(java.lang.String&nbsp;counterName)</code></th>
<td class="colLast">
<div class="block">Not thread safe increment of counterName.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#incrBy(java.lang.String,int)">incrBy</a></span>&#8203;(java.lang.String&nbsp;counterName,
int&nbsp;incrValue)</code></th>
<td class="colLast">
<div class="block">Not thread safe 'incrementing by' of counterName.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(org.apache.heron.api.metric.IMetricsRegister,java.time.Duration)">init</a></span>&#8203;(<a href="IMetricsRegister.html" title="interface in org.apache.heron.api.metric">IMetricsRegister</a>&nbsp;metricsRegister,
java.time.Duration&nbsp;metricsBucket)</code></th>
<td class="colLast">
<div class="block">Initialize the counter by registering the metricContainer.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected java.lang.Object</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readResolve()">readResolve</a></span>()</code></th>
<td class="colLast">
<div class="block">During serialization don't create a copy of this class.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#safeIncr(java.lang.String)">safeIncr</a></span>&#8203;(java.lang.String&nbsp;counterName)</code></th>
<td class="colLast">
<div class="block">Thread safe created increment of counterName.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#safeIncrBy(java.lang.String,int)">safeIncrBy</a></span>&#8203;(java.lang.String&nbsp;counterName,
int&nbsp;incrValue)</code></th>
<td class="colLast">
<div class="block">Thread safe created increment of counterName.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="GlobalMetrics.html" title="enum in org.apache.heron.api.metric">GlobalMetrics</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns the enum constant of this type with the specified name.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <a href="GlobalMetrics.html" title="enum in org.apache.heron.api.metric">GlobalMetrics</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ENUM CONSTANT DETAIL =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="enum.constant.detail">
<!-- -->
</a>
<h3>Enum Constant Detail</h3>
<a id="INSTANCE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>INSTANCE</h4>
<pre>public static final&nbsp;<a href="GlobalMetrics.html" title="enum in org.apache.heron.api.metric">GlobalMetrics</a> INSTANCE</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ FIELD DETAIL =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="ROOT_NAME">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ROOT_NAME</h4>
<pre>public static final&nbsp;java.lang.String ROOT_NAME</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.heron.api.metric.GlobalMetrics.ROOT_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="values()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public static&nbsp;<a href="GlobalMetrics.html" title="enum in org.apache.heron.api.metric">GlobalMetrics</a>[]&nbsp;values()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
<pre>
for (GlobalMetrics c : GlobalMetrics.values())
&nbsp; System.out.println(c);
</pre></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array containing the constants of this enum type, in the order they are declared</dd>
</dl>
</li>
</ul>
<a id="valueOf(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
<pre class="methodSignature">public static&nbsp;<a href="GlobalMetrics.html" title="enum in org.apache.heron.api.metric">GlobalMetrics</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
not permitted.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the enum constant to be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the enum constant with the specified name</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
</dl>
</li>
</ul>
<a id="incr(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>incr</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;incr&#8203;(java.lang.String&nbsp;counterName)</pre>
<div class="block">Not thread safe increment of counterName. Counter doesn't exist unless incremented once</div>
</li>
</ul>
<a id="incrBy(java.lang.String,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>incrBy</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;incrBy&#8203;(java.lang.String&nbsp;counterName,
int&nbsp;incrValue)</pre>
<div class="block">Not thread safe 'incrementing by' of counterName. Counter doesn't exist unless incremented once</div>
</li>
</ul>
<a id="safeIncr(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>safeIncr</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;safeIncr&#8203;(java.lang.String&nbsp;counterName)</pre>
<div class="block">Thread safe created increment of counterName. (Slow)</div>
</li>
</ul>
<a id="safeIncrBy(java.lang.String,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>safeIncrBy</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;safeIncrBy&#8203;(java.lang.String&nbsp;counterName,
int&nbsp;incrValue)</pre>
<div class="block">Thread safe created increment of counterName. (Slow)</div>
</li>
</ul>
<a id="init(org.apache.heron.api.metric.IMetricsRegister,java.time.Duration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;init&#8203;(<a href="IMetricsRegister.html" title="interface in org.apache.heron.api.metric">IMetricsRegister</a>&nbsp;metricsRegister,
java.time.Duration&nbsp;metricsBucket)</pre>
<div class="block">Initialize the counter by registering the metricContainer. Should be done in open/prepare call.
TODO: Investigate if it is possible to do this part in ctor. One thing to note is how this will
affect the serialization of CounterFactory.</div>
</li>
</ul>
<a id="getUnderlyingCounter()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnderlyingCounter</h4>
<pre class="methodSignature">public static&nbsp;<a href="MultiCountMetric.html" title="class in org.apache.heron.api.metric">MultiCountMetric</a>&nbsp;getUnderlyingCounter()</pre>
<div class="block">test-only</div>
</li>
</ul>
<a id="readResolve()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>readResolve</h4>
<pre class="methodSignature">protected&nbsp;java.lang.Object&nbsp;readResolve()</pre>
<div class="block">During serialization don't create a copy of this class. 'readResolve' is used by reflection
for java serialization.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>