blob: cb24fb0fcd70fa1bd3d7a0b1a94485bb47b12f7b [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 -->
<title>BytesThroughputEstimator (Apache Beam 2.47.0)</title>
<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="BytesThroughputEstimator (Apache Beam 2.47.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All 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="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>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/EncodingException.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" target="_top">Frames</a></li>
<li><a href="BytesThroughputEstimator.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><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>Field&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.beam.sdk.io.gcp.bigtable.changestreams.estimator</div>
<h2 title="Class BytesThroughputEstimator" class="title">Class BytesThroughputEstimator&lt;T&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator.BytesThroughputEstimator&lt;T&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable, <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/ThroughputEstimator.html" title="interface in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">ThroughputEstimator</a>&lt;T&gt;</dd>
</dl>
<hr>
<br>
<pre><a href="../../../../../../../../../org/apache/beam/sdk/annotations/Internal.html" title="annotation in org.apache.beam.sdk.annotations">@Internal</a>
public class <span class="typeNameLabel">BytesThroughputEstimator&lt;T&gt;</span>
extends java.lang.Object
implements <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/ThroughputEstimator.html" title="interface in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">ThroughputEstimator</a>&lt;T&gt;</pre>
<div class="block">An estimator to provide an estimate on the byte throughput of the outputted elements.
<p>This estimator will keep track of the bytes of reported records within a sliding window. The
window consists of the configured number of seconds and each record's bytes will fall into
exactly one given second bucket. When more than window size seconds have passed from the current
time, the bytes reported for the seconds that fall outside of the window will not be considered
anymore. The bytes of the records will be estimated using the configured <a href="../../../../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a>.
<p>The estimator will sample only 2% of records to save the cost of doing sizeEstimation for
every element</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../../../serialized-form.html#org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator.BytesThroughputEstimator">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html#BytesThroughputEstimator-int-org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator.SizeEstimator-">BytesThroughputEstimator</a></span>(int&nbsp;windowSizeSeconds,
<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/SizeEstimator.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">SizeEstimator</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&gt;&nbsp;sizeEstimator)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html#BytesThroughputEstimator-int-org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator.SizeEstimator-int-">BytesThroughputEstimator</a></span>(int&nbsp;windowSizeSeconds,
<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/SizeEstimator.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">SizeEstimator</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&gt;&nbsp;sizeEstimator,
int&nbsp;sampleRate)</code>&nbsp;</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="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>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html#get--">get</a></span>()</code>
<div class="block">Returns the estimated throughput bytes for now.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html#getFrom-org.joda.time.Instant-">getFrom</a></span>(<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;time)</code>
<div class="block">Returns the estimated throughput bytes for a specified time.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html#update-org.joda.time.Instant-T-">update</a></span>(<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;timeOfRecords,
<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&nbsp;element)</code>
<div class="block">Updates the estimator with the bytes of records if it is selected to be sampled.</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.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="BytesThroughputEstimator-int-org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator.SizeEstimator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BytesThroughputEstimator</h4>
<pre>public&nbsp;BytesThroughputEstimator(int&nbsp;windowSizeSeconds,
<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/SizeEstimator.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">SizeEstimator</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&gt;&nbsp;sizeEstimator)</pre>
</li>
</ul>
<a name="BytesThroughputEstimator-int-org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator.SizeEstimator-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BytesThroughputEstimator</h4>
<pre>public&nbsp;BytesThroughputEstimator(int&nbsp;windowSizeSeconds,
<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/SizeEstimator.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">SizeEstimator</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&gt;&nbsp;sizeEstimator,
int&nbsp;sampleRate)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="update-org.joda.time.Instant-java.lang.Object-">
<!-- -->
</a><a name="update-org.joda.time.Instant-T-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
<pre>public&nbsp;void&nbsp;update(<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;timeOfRecords,
<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&nbsp;element)</pre>
<div class="block">Updates the estimator with the bytes of records if it is selected to be sampled.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/ThroughputEstimator.html#update-org.joda.time.Instant-T-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/ThroughputEstimator.html" title="interface in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">ThroughputEstimator</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeOfRecords</code> - the committed timestamp of the records</dd>
<dd><code>element</code> - the element to estimate the byte size of</dd>
</dl>
</li>
</ul>
<a name="get--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre>public&nbsp;double&nbsp;get()</pre>
<div class="block">Returns the estimated throughput bytes for now.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/ThroughputEstimator.html#get--">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/ThroughputEstimator.html" title="interface in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">ThroughputEstimator</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getFrom-org.joda.time.Instant-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getFrom</h4>
<pre>public&nbsp;double&nbsp;getFrom(<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;time)</pre>
<div class="block">Returns the estimated throughput bytes for a specified time.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/ThroughputEstimator.html#getFrom-org.joda.time.Instant-">getFrom</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/ThroughputEstimator.html" title="interface in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator">ThroughputEstimator</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" title="type parameter in BytesThroughputEstimator">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>time</code> - the specified timestamp to check throughput</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>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/EncodingException.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.estimator"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/bigtable/changestreams/estimator/BytesThroughputEstimator.html" target="_top">Frames</a></li>
<li><a href="BytesThroughputEstimator.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><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>Field&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 ======= -->
</body>
</html>