List of usage examples for com.amazonaws.services.cloudwatch.model PutMetricDataResult getSdkResponseMetadata
public T getSdkResponseMetadata()
From source file:uk.gov.gchq.gaffer.performancetesting.aws.CloudWatchMetricsListener.java
License:Apache License
@Override public void update(final Metrics metrics) { List<MetricDatum> cloudwatchMetrics = new ArrayList<>(); Date now = new Date(); for (final String name : metrics.getMetricNames()) { Object value = metrics.getMetric(name); if (value instanceof Double) { cloudwatchMetrics.add(new MetricDatum().withMetricName(name).withValue((double) value) .withUnit(StandardUnit.CountSecond).withTimestamp(now).withDimensions(this.dimensions)); }/*from www .j a v a 2s .c o m*/ } if (cloudwatchMetrics.size() > 0) { PutMetricDataResult response = this.cloudwatch.putMetricData( new PutMetricDataRequest().withNamespace(this.namespace).withMetricData(cloudwatchMetrics)); LOGGER.info("AWS CloudWatch responseCode: {} requestId: {}", response.getSdkHttpMetadata().getHttpStatusCode(), response.getSdkResponseMetadata().getRequestId()); } }
From source file:uk.gov.gchq.gaffer.performancetesting.aws.PublishAccumuloMetricsToCloudWatch.java
License:Apache License
private void publishMetrics(final List<MetricDatum> metrics) { LOGGER.info("Submitting " + metrics.size() + " metrics to CloudWatch"); // CloudWatch throws InvalidParameterValue if a value has a high level of precision and is very close to 0 for (final MetricDatum metric : metrics) { if (Math.abs(metric.getValue()) < 0.0001) { metric.setValue(0.0);//from www . ja v a 2 s. co m } } // There's a limit on the AWS API which means only 20 metrics can be submitted at once! for (int i = 0; i < metrics.size(); i += 20) { final List<MetricDatum> metricBatch = metrics.subList(i, i + 20 > metrics.size() ? metrics.size() : i + 20); try { final PutMetricDataResult response = this.cloudwatch.putMetricData( new PutMetricDataRequest().withNamespace("Accumulo").withMetricData(metricBatch)); LOGGER.debug(response.getSdkResponseMetadata().getRequestId()); } catch (final AmazonCloudWatchException e) { LOGGER.error("Failed publishing the following metrics to CloudWatch: " + metricBatch, e); } } }