Example usage for com.amazonaws.services.cloudwatch.model MetricDatum withUnit

List of usage examples for com.amazonaws.services.cloudwatch.model MetricDatum withUnit

Introduction

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

Prototype


public MetricDatum withUnit(StandardUnit unit) 

Source Link

Document

When you are using a Put operation, this defines what unit you want to use when storing the metric.

Usage

From source file:com.mimesis.jmx.Exporter4CloudwatchAsyncClient.java

License:Apache License

@Override
public void export(Collection<Result> data) throws Exception {
    //TODO configure client to use POST
    AmazonCloudWatchAsyncClient awsClient = new AmazonCloudWatchAsyncClient(_awsCredentials);
    if (_region != null) {
        awsClient.setEndpoint(String.format("monitoring.%s.amazonaws.com", _region));
    }/*from   w  w w .j  a va2  s.c o  m*/

    Collection<Dimension> dimensions = parseDimensions(_dimensions);
    ArrayList<MetricDatum> metrics = new ArrayList<MetricDatum>(AWS_METRICS_MAX);
    System.out.println("send START");
    int i = 0;
    for (Result d : data) {
        if (!(d.value instanceof Number)) {
            logger.info(String.format("CloudWatch only accept value of type Number : [%s][%s] => %s",
                    d.objectName, d.key, String.valueOf(d.value)));
            continue;
        }
        MetricDatum metricDatum = new MetricDatum().withMetricName(metricNameOf(d.objectName, d.key))
                .withValue(((Number) d.value).doubleValue()).withTimestamp(d.timestampDate);
        if (dimensions.size() > 0) {
            metricDatum = metricDatum.withDimensions(dimensions);
        }
        if (d.unit != null) {
            metricDatum = metricDatum.withUnit(d.unit);
        }
        System.out.println("send : " + (++i) + metricDatum.getMetricName());
        metrics.add(metricDatum);
        if (metrics.size() == AWS_METRICS_MAX) {
            waitEndOfLastExport();
            _lastFuture = awsClient.putMetricDataAsync(newPutMetricDataRequest(metrics));
            metrics = new ArrayList<MetricDatum>(AWS_METRICS_MAX);
        }
    }
    if (metrics.size() > 0) {
        waitEndOfLastExport();
        _lastFuture = awsClient.putMetricDataAsync(newPutMetricDataRequest(metrics));
    }
}