List of usage examples for com.amazonaws.services.cloudwatch.model MetricDatum withUnit
public MetricDatum withUnit(StandardUnit unit)
When you are using a Put
operation, this defines what unit you want to use when storing the metric.
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)); } }