Example usage for com.amazonaws.services.cloudwatch.model PutMetricDataResult getSdkResponseMetadata

List of usage examples for com.amazonaws.services.cloudwatch.model PutMetricDataResult getSdkResponseMetadata

Introduction

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

Prototype

public T getSdkResponseMetadata() 

Source Link

Usage

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);
        }
    }
}