class BlockingRequestBuilder
extends java.lang.Object
nextUploadUnits()
blocks as
necessary.Modifier and Type | Field and Description |
---|---|
private MachineMetricFactory |
machineMetricFactory |
private static java.lang.String |
OS_METRIC_NAME |
private java.util.concurrent.BlockingQueue<MetricDatum> |
queue |
private long |
timeoutNano |
Constructor and Description |
---|
BlockingRequestBuilder(CloudWatchMetricConfig config,
java.util.concurrent.BlockingQueue<MetricDatum> queue) |
Modifier and Type | Method and Description |
---|---|
(package private) MetricDatum |
cloneMetricDatum(MetricDatum md)
Returns a metric datum cloned from the given one.
|
private Dimension |
dimension(Dimensions name,
java.lang.String value) |
private java.util.Collection<MetricDatum> |
filterOSMetrics(java.util.Collection<MetricDatum> data)
Return a collection of metrics almost the same as the input except with
all OS metrics removed.
|
private PutMetricDataRequest |
newPutMetricDataRequest(java.util.Collection<MetricDatum> data,
java.lang.String namespace,
Dimension... extraDims) |
private java.util.List<PutMetricDataRequest> |
newPutMetricDataRequests(java.util.Collection<MetricDatum> data) |
(package private) java.lang.Iterable<PutMetricDataRequest> |
nextUploadUnits()
Returns the next batch of
PutMetricDataRequest to be sent to
Amazon CloudWatch, blocking as necessary to gather and accumulate the
necessary statistics. |
private void |
summarize(MetricDatum datum,
java.util.Map<java.lang.String,MetricDatum> uniqueMetrics)
Summarizes the given datum into the statistics of the respective unique metric.
|
private java.lang.Iterable<PutMetricDataRequest> |
toPutMetricDataRequests(java.util.Map<java.lang.String,MetricDatum> uniqueMetrics)
Consolidates the input metrics into a list of PutMetricDataRequest, each
within the maximum size limit imposed by CloudWatch.
|
private static final java.lang.String OS_METRIC_NAME
private final MachineMetricFactory machineMetricFactory
private final java.util.concurrent.BlockingQueue<MetricDatum> queue
private final long timeoutNano
BlockingRequestBuilder(CloudWatchMetricConfig config, java.util.concurrent.BlockingQueue<MetricDatum> queue)
java.lang.Iterable<PutMetricDataRequest> nextUploadUnits() throws java.lang.InterruptedException
PutMetricDataRequest
to be sent to
Amazon CloudWatch, blocking as necessary to gather and accumulate the
necessary statistics. If there is no metrics data, this call blocks
indefinitely. If there is metrics data, this call will block up to about
CloudWatchMetricConfig.getQueuePollTimeoutMilli()
number of
milliseconds.java.lang.InterruptedException
private void summarize(MetricDatum datum, java.util.Map<java.lang.String,MetricDatum> uniqueMetrics)
private java.lang.Iterable<PutMetricDataRequest> toPutMetricDataRequests(java.util.Map<java.lang.String,MetricDatum> uniqueMetrics)
private java.util.List<PutMetricDataRequest> newPutMetricDataRequests(java.util.Collection<MetricDatum> data)
private java.util.Collection<MetricDatum> filterOSMetrics(java.util.Collection<MetricDatum> data)
private PutMetricDataRequest newPutMetricDataRequest(java.util.Collection<MetricDatum> data, java.lang.String namespace, Dimension... extraDims)
final MetricDatum cloneMetricDatum(MetricDatum md)
private Dimension dimension(Dimensions name, java.lang.String value)