Example usage for com.amazonaws.services.cloudwatch.model PutMetricDataRequest withMetricData

List of usage examples for com.amazonaws.services.cloudwatch.model PutMetricDataRequest withMetricData

Introduction

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

Prototype


public PutMetricDataRequest withMetricData(java.util.Collection<MetricDatum> metricData) 

Source Link

Document

The data for the metric.

Usage

From source file:com.kixeye.chassis.support.metrics.aws.MetricsCloudWatchReporter.java

License:Apache License

private void addDatum(String name, double value, LinkedList<PutMetricDataRequest> requests, Date timestamp) {
    if (logger.isDebugEnabled()) {
        logger.debug("Adding Datum {} with value {} at {}", name, value, timestamp);
    }// w w w .  java2 s. c o m
    if (requests.isEmpty() || requests.getLast().getMetricData().size() == MAX_CLOUDWATCH_DATUM_PER_REQUEST) {
        requests.add(createRequest());
    }
    PutMetricDataRequest request = requests.getLast();
    MetricDatum datum = new MetricDatum().withTimestamp(timestamp).withValue(value).withMetricName(name)
            .withUnit(StandardUnit.None).withDimensions(createDimensions());
    request.withMetricData(datum);
}

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

License:Apache License

private PutMetricDataRequest newPutMetricDataRequest(ArrayList<MetricDatum> metrics) {
    PutMetricDataRequest putMetricDataRequest = new PutMetricDataRequest();
    if (_namespace != null) {
        putMetricDataRequest = putMetricDataRequest.withNamespace(_namespace);
    }/*from w w w.  ja  va  2s  .co m*/
    return putMetricDataRequest.withMetricData(metrics);
}

From source file:com.nextdoor.bender.monitoring.cw.CloudwatchReporter.java

License:Apache License

@Override
public void write(ArrayList<Stat> stats, long invokeTimeMs, Set<Tag> tags) {
    Date dt = new Date();
    dt.setTime(invokeTimeMs);/*from   w ww.  j  a va 2  s  .  c  om*/

    Collection<Dimension> parentDims = tagsToDimensions(tags);
    List<MetricDatum> metrics = new ArrayList<MetricDatum>();

    /*
     * Create CW metric objects from bender internal Stat objects
     */
    for (Stat stat : stats) {
        /*
         * Dimension are CW's version of metric tags. A conversion must be done.
         */
        Collection<Dimension> metricDims = tagsToDimensions(stat.getTags());
        metricDims.addAll(parentDims);

        MetricDatum metric = new MetricDatum();
        metric.setMetricName(stat.getName());
        // TODO: add units to Stat object SYSTEMS-870
        metric.setUnit(StandardUnit.None);
        metric.setTimestamp(dt);
        metric.setDimensions(metricDims);
        metric.setValue((double) stat.getValue());

        metrics.add(metric);
    }

    /*
     * Not very well documented in java docs but CW only allows 20 metrics at a time.
     */
    List<List<MetricDatum>> chunks = ListUtils.partition(metrics, 20);
    for (List<MetricDatum> chunk : chunks) {
        PutMetricDataRequest req = new PutMetricDataRequest();
        req.withMetricData(chunk);
        req.setNamespace(namespace);

        this.client.putMetricData(req);
    }
}