Example usage for com.amazonaws.services.cloudwatch.model StatisticSet setMaximum

List of usage examples for com.amazonaws.services.cloudwatch.model StatisticSet setMaximum

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudwatch.model StatisticSet setMaximum.

Prototype


public void setMaximum(Double maximum) 

Source Link

Document

The maximum value of the sample set.

Usage

From source file:com.amazon.kinesis.streaming.agent.metrics.AccumulatingMetricsScope.java

License:Open Source License

@Override
protected void realAddData(String name, double value, StandardUnit unit) {
    MetricDatum datum = data.get(name);//from ww w . ja v a 2s . c  om
    if (datum == null) {
        data.put(name, new MetricDatum().withMetricName(name).withUnit(unit).withStatisticValues(
                new StatisticSet().withMaximum(value).withMinimum(value).withSampleCount(1.0).withSum(value)));
    } else {
        if (!datum.getUnit().equals(unit.name())) {
            throw new IllegalArgumentException("Cannot add to existing metric with different unit");
        }
        StatisticSet statistics = datum.getStatisticValues();
        statistics.setMaximum(Math.max(value, statistics.getMaximum()));
        statistics.setMinimum(Math.min(value, statistics.getMinimum()));
        statistics.setSampleCount(statistics.getSampleCount() + 1);
        statistics.setSum(statistics.getSum() + value);
    }
}

From source file:com.amazon.kinesis.streaming.agent.metrics.MetricAccumulatingQueue.java

License:Open Source License

private void accumulate(MetricDatum oldDatum, MetricDatum newDatum) {
    if (!oldDatum.getUnit().equals(newDatum.getUnit())) {
        throw new IllegalArgumentException("Unit mismatch for datum named " + oldDatum.getMetricName());
    }/*  ww  w . ja  v a2 s  .c  o  m*/

    StatisticSet oldStats = oldDatum.getStatisticValues();
    StatisticSet newStats = newDatum.getStatisticValues();

    oldStats.setSampleCount(oldStats.getSampleCount() + newStats.getSampleCount());
    oldStats.setMaximum(Math.max(oldStats.getMaximum(), newStats.getMaximum()));
    oldStats.setMinimum(Math.min(oldStats.getMinimum(), newStats.getMinimum()));
    oldStats.setSum(oldStats.getSum() + newStats.getSum());
}

From source file:com.github.lpezet.antiope.metrics.aws.BlockingRequestBuilder.java

License:Open Source License

/**
 * Summarizes the given datum into the statistics of the respective unique metric.
 *//*from ww w. j  ava 2s . c om*/
private void summarize(MetricDatum pDatum, Map<String, MetricDatum> pUniqueMetrics) {
    Double pValue = pDatum.getValue();
    if (pValue == null) {
        return;
    }
    List<Dimension> oDims = pDatum.getDimensions();
    Collections.sort(oDims, DimensionComparator.INSTANCE);
    String oMetricName = pDatum.getMetricName();
    String k = oMetricName + Jackson.toJsonString(oDims);
    MetricDatum oStatDatum = pUniqueMetrics.get(k);
    if (oStatDatum == null) {
        oStatDatum = new MetricDatum().withDimensions(pDatum.getDimensions()).withMetricName(oMetricName)
                .withUnit(pDatum.getUnit()).withStatisticValues(new StatisticSet().withMaximum(pValue)
                        .withMinimum(pValue).withSampleCount(0.0).withSum(0.0));
        pUniqueMetrics.put(k, oStatDatum);
    }
    StatisticSet oStat = oStatDatum.getStatisticValues();
    oStat.setSampleCount(oStat.getSampleCount() + 1.0);
    oStat.setSum(oStat.getSum() + pValue);
    if (pValue > oStat.getMaximum()) {
        oStat.setMaximum(pValue);
    } else if (pValue < oStat.getMinimum()) {
        oStat.setMinimum(pValue);
    }
}

From source file:org.apache.nifi.processors.aws.cloudwatch.PutCloudWatchMetric.java

License:Apache License

@Override
public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException {
    FlowFile flowFile = session.get();//from   w w w .j a va  2 s.  c o  m
    if (flowFile == null) {
        return;
    }
    MetricDatum datum = new MetricDatum();

    try {
        datum.setMetricName(context.getProperty(METRIC_NAME).evaluateAttributeExpressions(flowFile).getValue());
        final String valueString = context.getProperty(VALUE).evaluateAttributeExpressions(flowFile).getValue();
        if (valueString != null) {
            datum.setValue(Double.parseDouble(valueString));
        } else {
            StatisticSet statisticSet = new StatisticSet();
            statisticSet.setMaximum(Double.parseDouble(
                    context.getProperty(MAXIMUM).evaluateAttributeExpressions(flowFile).getValue()));
            statisticSet.setMinimum(Double.parseDouble(
                    context.getProperty(MINIMUM).evaluateAttributeExpressions(flowFile).getValue()));
            statisticSet.setSampleCount(Double.parseDouble(
                    context.getProperty(SAMPLECOUNT).evaluateAttributeExpressions(flowFile).getValue()));
            statisticSet.setSum(Double
                    .parseDouble(context.getProperty(SUM).evaluateAttributeExpressions(flowFile).getValue()));

            datum.setStatisticValues(statisticSet);
        }

        final String timestamp = context.getProperty(TIMESTAMP).evaluateAttributeExpressions(flowFile)
                .getValue();
        if (timestamp != null) {
            datum.setTimestamp(new Date(Long.parseLong(timestamp)));
        }

        final String unit = context.getProperty(UNIT).evaluateAttributeExpressions(flowFile).getValue();
        if (unit != null) {
            datum.setUnit(unit);
        }

        // add dynamic properties as dimensions
        if (!dynamicPropertyNames.isEmpty()) {
            final List<Dimension> dimensions = new ArrayList<>(dynamicPropertyNames.size());
            for (String propertyName : dynamicPropertyNames) {
                final String propertyValue = context.getProperty(propertyName)
                        .evaluateAttributeExpressions(flowFile).getValue();
                if (StringUtils.isNotBlank(propertyValue)) {
                    dimensions.add(new Dimension().withName(propertyName).withValue(propertyValue));
                }
            }
            datum.withDimensions(dimensions);
        }

        final PutMetricDataRequest metricDataRequest = new PutMetricDataRequest()
                .withNamespace(context.getProperty(NAMESPACE).evaluateAttributeExpressions(flowFile).getValue())
                .withMetricData(datum);

        putMetricData(metricDataRequest);
        session.transfer(flowFile, REL_SUCCESS);
        getLogger().info("Successfully published cloudwatch metric for {}", new Object[] { flowFile });
    } catch (final Exception e) {
        getLogger().error("Failed to publish cloudwatch metric for {} due to {}", new Object[] { flowFile, e });
        flowFile = session.penalize(flowFile);
        session.transfer(flowFile, REL_FAILURE);
    }

}

From source file:org.web.online.cloudwatch.tomcat.valve.ElapsedTimeAggregator.java

License:Apache License

/**
 * Collect the aggregated values (min, max, count, sum) into a
 * StatisticSet and send the data to Cloud Watch
 *//*from   w  w  w  . j ava2s . co m*/
@Override
public void run() {

    PutMetricDataRequest localPutMetricDataRequest = zeroValuePutMetricDataRequest;
    MetricDatum metricDatum = localPutMetricDataRequest.getMetricData().get(0);

    if (sampleCount > 0) {
        localPutMetricDataRequest = putMetricDataRequest;
        metricDatum = localPutMetricDataRequest.getMetricData().get(0);
        StatisticSet statisticSet = metricDatum.getStatisticValues();
        synchronized (lock) {
            statisticSet.setMaximum(maximum);
            statisticSet.setMinimum(minimum);
            statisticSet.setSampleCount(sampleCount);
            statisticSet.setSum(sum);

            minimum = Double.MAX_VALUE;
            maximum = Double.MIN_VALUE;
            sampleCount = 0;
            sum = 0;
        }
    }

    metricDatum.setTimestamp(new Date());

    if (log.isDebugEnabled()) {
        log.debug("sending " + localPutMetricDataRequest);
    }

    cloudWatchClient.putMetricData(localPutMetricDataRequest);
}