blob: 6a6455734e40074eb2dc7dad106eb8b34659d3f7 [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_191) on Fri Apr 10 11:36:21 EDT 2020 -->
<title>StreamsMetrics (kafka 2.5.0 API)</title>
<meta name="date" content="2020-04-10">
<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="StreamsMetrics (kafka 2.5.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":38,"i1":6,"i2":6,"i3":6,"i4":6,"i5":38,"i6":6,"i7":38,"i8":38,"i9":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated 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="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/kafka/streams/StreamsConfig.InternalConfig.html" title="class in org.apache.kafka.streams"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kafka/streams/TestInputTopic.html" title="class in org.apache.kafka.streams"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kafka/streams/StreamsMetrics.html" target="_top">Frames</a></li>
<li><a href="StreamsMetrics.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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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.kafka.streams</div>
<h2 title="Interface StreamsMetrics" class="title">Interface StreamsMetrics</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">StreamsMetrics</span></pre>
<div class="block">The Kafka Streams metrics interface for adding metric sensors and collecting metric values.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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.kafka.common.metrics.Sensor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addLatencyAndThroughputSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-">addLatencyAndThroughputSensor</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;scopeName,
<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;entityName,
<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;operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
<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;tags)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">since 2.5. Use <a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addLatencyRateTotalSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-"><code>addLatencyRateTotalSensor()</code></a>
instead.</span></div>
</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>org.apache.kafka.common.metrics.Sensor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addLatencyRateTotalSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-">addLatencyRateTotalSensor</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;scopeName,
<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;entityName,
<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;operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
<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;tags)</code>
<div class="block">Add a latency, rate and total sensor for a specific operation, which will include the following metrics:
average latency
max latency
invocation rate (num.operations / seconds)
total invocation count
Whenever a user records this sensor via <code>Sensor.record(double)</code> etc, it will be counted as one invocation
of the operation, and hence the rate / count metrics will be updated accordingly; and the recorded latency value
will be used to update the average / max latency as well.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.kafka.common.metrics.Sensor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addRateTotalSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-">addRateTotalSensor</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;scopeName,
<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;entityName,
<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;operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
<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;tags)</code>
<div class="block">Add a rate and a total sensor for a specific operation, which will include the following metrics:
invocation rate (num.operations / time unit)
total invocation count
Whenever a user records this sensor via <code>Sensor.record(double)</code> etc,
it will be counted as one invocation of the operation, and hence the rate / count metrics will be updated accordingly.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>org.apache.kafka.common.metrics.Sensor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addSensor-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-">addSensor</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;name,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel)</code>
<div class="block">Generic method to create a sensor.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>org.apache.kafka.common.metrics.Sensor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addSensor-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-org.apache.kafka.common.metrics.Sensor...-">addSensor</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;name,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
org.apache.kafka.common.metrics.Sensor...&nbsp;parents)</code>
<div class="block">Generic method to create a sensor with parent sensors.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>org.apache.kafka.common.metrics.Sensor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addThroughputSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-">addThroughputSensor</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;scopeName,
<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;entityName,
<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;operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
<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;tags)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">since 2.5. Use <a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addRateTotalSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-"><code>addRateTotalSensor()</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/kafka/common/MetricName.html" title="class in org.apache.kafka.common">MetricName</a>,? extends <a href="../../../../org/apache/kafka/common/Metric.html" title="interface in org.apache.kafka.common">Metric</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#metrics--">metrics</a></span>()</code>
<div class="block">Get read-only handle on global metrics registry.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#recordLatency-org.apache.kafka.common.metrics.Sensor-long-long-">recordLatency</a></span>(org.apache.kafka.common.metrics.Sensor&nbsp;sensor,
long&nbsp;startNs,
long&nbsp;endNs)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">since 2.5. Use <code>Sensor#record()</code> instead.</span></div>
</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#recordThroughput-org.apache.kafka.common.metrics.Sensor-long-">recordThroughput</a></span>(org.apache.kafka.common.metrics.Sensor&nbsp;sensor,
long&nbsp;value)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">since 2.5. Use <code>Sensor#record()</code> instead.</span></div>
</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#removeSensor-org.apache.kafka.common.metrics.Sensor-">removeSensor</a></span>(org.apache.kafka.common.metrics.Sensor&nbsp;sensor)</code>
<div class="block">Remove a sensor.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="metrics--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>metrics</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/kafka/common/MetricName.html" title="class in org.apache.kafka.common">MetricName</a>,? extends <a href="../../../../org/apache/kafka/common/Metric.html" title="interface in org.apache.kafka.common">Metric</a>&gt;&nbsp;metrics()</pre>
<div class="block">Get read-only handle on global metrics registry.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of all metrics.</dd>
</dl>
</li>
</ul>
<a name="addLatencyRateTotalSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addLatencyRateTotalSensor</h4>
<pre>org.apache.kafka.common.metrics.Sensor&nbsp;addLatencyRateTotalSensor(<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;scopeName,
<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;entityName,
<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;operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
<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;tags)</pre>
<div class="block">Add a latency, rate and total sensor for a specific operation, which will include the following metrics:
<ol>
<li>average latency</li>
<li>max latency</li>
<li>invocation rate (num.operations / seconds)</li>
<li>total invocation count</li>
</ol>
Whenever a user records this sensor via <code>Sensor.record(double)</code> etc, it will be counted as one invocation
of the operation, and hence the rate / count metrics will be updated accordingly; and the recorded latency value
will be used to update the average / max latency as well.
Note that you can add more metrics to this sensor after you created it, which can then be updated upon
<code>Sensor.record(double)</code> calls.
The added sensor and its metrics can be removed with <a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#removeSensor-org.apache.kafka.common.metrics.Sensor-"><code>removeSensor()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scopeName</code> - name of the scope, which will be used as part of the metric type, e.g.: "stream-[scope]-metrics".</dd>
<dd><code>entityName</code> - name of the entity, which will be used as part of the metric tags, e.g.: "[scope]-id" = "[entity]".</dd>
<dd><code>operationName</code> - name of the operation, which will be used as the name of the metric, e.g.: "[operation]-latency-avg".</dd>
<dd><code>recordingLevel</code> - the recording level (e.g., INFO or DEBUG) for this sensor.</dd>
<dd><code>tags</code> - additional tags of the sensor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The added sensor.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>#addRateTotalSensor(String, String, String, RecordingLevel, String...)</code>,
<a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#removeSensor-org.apache.kafka.common.metrics.Sensor-"><code>removeSensor(Sensor)</code></a>,
<code>#addSensor(String, RecordingLevel, Sensor...)</code></dd>
</dl>
</li>
</ul>
<a name="addRateTotalSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRateTotalSensor</h4>
<pre>org.apache.kafka.common.metrics.Sensor&nbsp;addRateTotalSensor(<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;scopeName,
<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;entityName,
<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;operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
<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;tags)</pre>
<div class="block">Add a rate and a total sensor for a specific operation, which will include the following metrics:
<ol>
<li>invocation rate (num.operations / time unit)</li>
<li>total invocation count</li>
</ol>
Whenever a user records this sensor via <code>Sensor.record(double)</code> etc,
it will be counted as one invocation of the operation, and hence the rate / count metrics will be updated accordingly.
Note that you can add more metrics to this sensor after you created it, which can then be updated upon
<code>Sensor.record(double)</code> calls.
The added sensor and its metrics can be removed with <a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#removeSensor-org.apache.kafka.common.metrics.Sensor-"><code>removeSensor()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scopeName</code> - name of the scope, which will be used as part of the metrics type, e.g.: "stream-[scope]-metrics".</dd>
<dd><code>entityName</code> - name of the entity, which will be used as part of the metric tags, e.g.: "[scope]-id" = "[entity]".</dd>
<dd><code>operationName</code> - name of the operation, which will be used as the name of the metric, e.g.: "[operation]-total".</dd>
<dd><code>recordingLevel</code> - the recording level (e.g., INFO or DEBUG) for this sensor.</dd>
<dd><code>tags</code> - additional tags of the sensor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The added sensor.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>#addLatencyRateTotalSensor(String, String, String, RecordingLevel, String...)</code>,
<a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#removeSensor-org.apache.kafka.common.metrics.Sensor-"><code>removeSensor(Sensor)</code></a>,
<code>#addSensor(String, RecordingLevel, Sensor...)</code></dd>
</dl>
</li>
</ul>
<a name="addLatencyAndThroughputSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addLatencyAndThroughputSensor</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
org.apache.kafka.common.metrics.Sensor&nbsp;addLatencyAndThroughputSensor(<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;scopeName,
<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;entityName,
<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;operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
<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;tags)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.5. Use <a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addLatencyRateTotalSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-"><code>addLatencyRateTotalSensor()</code></a>
instead.</span></div>
<div class="block">Add a latency and throughput sensor for a specific operation, which will include the following sensors:
<ol>
<li>average latency</li>
<li>max latency</li>
<li>throughput (num.operations / time unit)</li>
</ol>
Also create a parent sensor with the same metrics that aggregates all entities with the same operation under the
same scope if it has not been created.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scopeName</code> - name of the scope, could be the type of the state store, etc.</dd>
<dd><code>entityName</code> - name of the entity, could be the name of the state store instance, etc.</dd>
<dd><code>operationName</code> - name of the operation, could be get / put / delete / etc.</dd>
<dd><code>recordingLevel</code> - the recording level (e.g., INFO or DEBUG) for this sensor.</dd>
<dd><code>tags</code> - additional tags of the sensor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The added sensor.</dd>
</dl>
</li>
</ul>
<a name="recordLatency-org.apache.kafka.common.metrics.Sensor-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recordLatency</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
void&nbsp;recordLatency(org.apache.kafka.common.metrics.Sensor&nbsp;sensor,
long&nbsp;startNs,
long&nbsp;endNs)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.5. Use <code>Sensor#record()</code> instead.</span></div>
<div class="block">Record the given latency value of the sensor.
If the passed sensor includes throughput metrics, e.g., when created by the
<a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addLatencyAndThroughputSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-"><code>addLatencyAndThroughputSensor(String, String, String, Sensor.RecordingLevel, String...)</code></a> method, then the
throughput metrics will also be recorded from this event.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensor</code> - sensor whose latency we are recording.</dd>
<dd><code>startNs</code> - start of measurement time in nanoseconds.</dd>
<dd><code>endNs</code> - end of measurement time in nanoseconds.</dd>
</dl>
</li>
</ul>
<a name="addThroughputSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addThroughputSensor</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
org.apache.kafka.common.metrics.Sensor&nbsp;addThroughputSensor(<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;scopeName,
<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;entityName,
<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;operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
<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;tags)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.5. Use <a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addRateTotalSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-"><code>addRateTotalSensor()</code></a> instead.</span></div>
<div class="block">Add a throughput sensor for a specific operation:
<ol>
<li>throughput (num.operations / time unit)</li>
</ol>
Also create a parent sensor with the same metrics that aggregates all entities with the same operation under the
same scope if it has not been created.
This sensor is a strict subset of the sensors created by
<a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#addLatencyAndThroughputSensor-java.lang.String-java.lang.String-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-java.lang.String...-"><code>addLatencyAndThroughputSensor(String, String, String, Sensor.RecordingLevel, String...)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scopeName</code> - name of the scope, could be the type of the state store, etc.</dd>
<dd><code>entityName</code> - name of the entity, could be the name of the state store instance, etc.</dd>
<dd><code>operationName</code> - name of the operation, could be get / put / delete / etc.</dd>
<dd><code>recordingLevel</code> - the recording level (e.g., INFO or DEBUG) for this sensor.</dd>
<dd><code>tags</code> - additional tags of the sensor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The added sensor.</dd>
</dl>
</li>
</ul>
<a name="recordThroughput-org.apache.kafka.common.metrics.Sensor-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recordThroughput</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
void&nbsp;recordThroughput(org.apache.kafka.common.metrics.Sensor&nbsp;sensor,
long&nbsp;value)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.5. Use <code>Sensor#record()</code> instead.</span></div>
<div class="block">Record the throughput value of a sensor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensor</code> - add Sensor whose throughput we are recording</dd>
<dd><code>value</code> - throughput value</dd>
</dl>
</li>
</ul>
<a name="addSensor-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSensor</h4>
<pre>org.apache.kafka.common.metrics.Sensor&nbsp;addSensor(<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;name,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel)</pre>
<div class="block">Generic method to create a sensor.
Note that for most cases it is advisable to use
<code>addRateTotalSensor()</code>
or <code>addLatencyRateTotalSensor()</code>
to ensure metric name well-formedness and conformity with the rest of the Kafka Streams code base.
However, if the above two methods are not sufficient, this method can also be used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the sensor.</dd>
<dd><code>recordingLevel</code> - the recording level (e.g., INFO or DEBUG) for this sensor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The added sensor.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>#addRateTotalSensor(String, String, String, RecordingLevel, String...)</code>,
<code>#addLatencyRateTotalSensor(String, String, String, RecordingLevel, String...)</code>,
<a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#removeSensor-org.apache.kafka.common.metrics.Sensor-"><code>removeSensor(Sensor)</code></a></dd>
</dl>
</li>
</ul>
<a name="addSensor-java.lang.String-org.apache.kafka.common.metrics.Sensor.RecordingLevel-org.apache.kafka.common.metrics.Sensor...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSensor</h4>
<pre>org.apache.kafka.common.metrics.Sensor&nbsp;addSensor(<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;name,
org.apache.kafka.common.metrics.Sensor.RecordingLevel&nbsp;recordingLevel,
org.apache.kafka.common.metrics.Sensor...&nbsp;parents)</pre>
<div class="block">Generic method to create a sensor with parent sensors.
Note that for most cases it is advisable to use
<code>addRateTotalSensor()</code>
or <code>addLatencyRateTotalSensor()</code>
to ensure metric name well-formedness and conformity with the rest of the Kafka Streams code base.
However, if the above two methods are not sufficient, this method can also be used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the sensor</dd>
<dd><code>recordingLevel</code> - the recording level (e.g., INFO or DEBUG) for this sensor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The added sensor.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>#addRateTotalSensor(String, String, String, RecordingLevel, String...)</code>,
<code>#addLatencyRateTotalSensor(String, String, String, RecordingLevel, String...)</code>,
<a href="../../../../org/apache/kafka/streams/StreamsMetrics.html#removeSensor-org.apache.kafka.common.metrics.Sensor-"><code>removeSensor(Sensor)</code></a></dd>
</dl>
</li>
</ul>
<a name="removeSensor-org.apache.kafka.common.metrics.Sensor-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>removeSensor</h4>
<pre>void&nbsp;removeSensor(org.apache.kafka.common.metrics.Sensor&nbsp;sensor)</pre>
<div class="block">Remove a sensor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensor</code> - sensor to be removed</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="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/kafka/streams/StreamsConfig.InternalConfig.html" title="class in org.apache.kafka.streams"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kafka/streams/TestInputTopic.html" title="class in org.apache.kafka.streams"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kafka/streams/StreamsMetrics.html" target="_top">Frames</a></li>
<li><a href="StreamsMetrics.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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>