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

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

Introduction

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

Prototype


public void setTimestamp(java.util.Date timestamp) 

Source Link

Document

The time the metric data was received, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

Usage

From source file:com.mulesoft.agent.monitoring.publisher.CloudwatchMonitorPublisher.java

License:Open Source License

/**
 * <p>//ww w . j  av a 2s  .  c  o  m
 * Transforms the metrics from the Metric domain object o the MetricDatum type used by the AWS sdk
 * </p>
 * @param metrics The list of Metric objects
 * @return The converted list of MetricDatum objects
 */
private static List<MetricDatum> transformMetrics(List<Metric> metrics) {
    List<MetricDatum> cloudWatchMetrics = new LinkedList<>();
    for (Metric metric : metrics) {
        MetricDatum cloudwatchMetric = new MetricDatum();
        cloudwatchMetric.setMetricName(metric.getName());
        cloudwatchMetric.setValue(metric.getValue().doubleValue());
        cloudwatchMetric.setTimestamp(new Date(metric.getTimestamp()));
        cloudWatchMetrics.add(cloudwatchMetric);
    }
    return cloudWatchMetrics;
}

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);//  www.j a  v  a  2s .c  o  m

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

From source file:com.pinterest.arcee.autoscaling.AwsAlarmManager.java

License:Apache License

@Override
public void putMetricsToAlarm(String groupName, String metricName, Collection<MetricDatumBean> metricDataPoints)
        throws Exception {
    List<MetricDatum> metricData = new ArrayList<>();
    if (metricDataPoints.isEmpty()) {
        LOG.debug(//w ww. ja  va2 s .com
                String.format("There are no metric data for metric %s, for group %s.", metricName, groupName));
        return;
    }

    for (MetricDatumBean metricDataPoint : metricDataPoints) {
        MetricDatum metricDatum = new MetricDatum();
        metricDatum.setMetricName(metricName);
        metricDatum.setTimestamp(new Date(metricDataPoint.getTimestamp()));
        metricDatum.setValue(metricDataPoint.getValue());
        metricDatum.setDimensions(Arrays.asList(getDimention(groupName)));
        metricData.add(metricDatum);
        if (metricData.size() == MAX_AWS_METRIC_RECORDS) {
            sendMetricsInternal(metricData, groupName);
            metricData.clear();
        }
    }

    if (!metricData.isEmpty()) {
        sendMetricsInternal(metricData, groupName);
    }
}

From source file:org.apache.nifi.processors.aws.cloudwatch.PutCloudWatchMetric.java

License:Apache License

@Override
public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException {
    FlowFile flowFile = session.get();// w  w  w  .j  ava 2  s  .c  o m
    if (flowFile == null) {
        return;
    }
    MetricDatum datum = new MetricDatum();

    try {
        datum.setMetricName(context.getProperty(METRIC_NAME).evaluateAttributeExpressions(flowFile).getValue());
        final String valueString = context.getProperty(VALUE).evaluateAttributeExpressions(flowFile).getValue();
        if (valueString != null) {
            datum.setValue(Double.parseDouble(valueString));
        } else {
            StatisticSet statisticSet = new StatisticSet();
            statisticSet.setMaximum(Double.parseDouble(
                    context.getProperty(MAXIMUM).evaluateAttributeExpressions(flowFile).getValue()));
            statisticSet.setMinimum(Double.parseDouble(
                    context.getProperty(MINIMUM).evaluateAttributeExpressions(flowFile).getValue()));
            statisticSet.setSampleCount(Double.parseDouble(
                    context.getProperty(SAMPLECOUNT).evaluateAttributeExpressions(flowFile).getValue()));
            statisticSet.setSum(Double
                    .parseDouble(context.getProperty(SUM).evaluateAttributeExpressions(flowFile).getValue()));

            datum.setStatisticValues(statisticSet);
        }

        final String timestamp = context.getProperty(TIMESTAMP).evaluateAttributeExpressions(flowFile)
                .getValue();
        if (timestamp != null) {
            datum.setTimestamp(new Date(Long.parseLong(timestamp)));
        }

        final String unit = context.getProperty(UNIT).evaluateAttributeExpressions(flowFile).getValue();
        if (unit != null) {
            datum.setUnit(unit);
        }

        // add dynamic properties as dimensions
        if (!dynamicPropertyNames.isEmpty()) {
            final List<Dimension> dimensions = new ArrayList<>(dynamicPropertyNames.size());
            for (String propertyName : dynamicPropertyNames) {
                final String propertyValue = context.getProperty(propertyName)
                        .evaluateAttributeExpressions(flowFile).getValue();
                if (StringUtils.isNotBlank(propertyValue)) {
                    dimensions.add(new Dimension().withName(propertyName).withValue(propertyValue));
                }
            }
            datum.withDimensions(dimensions);
        }

        final PutMetricDataRequest metricDataRequest = new PutMetricDataRequest()
                .withNamespace(context.getProperty(NAMESPACE).evaluateAttributeExpressions(flowFile).getValue())
                .withMetricData(datum);

        putMetricData(metricDataRequest);
        session.transfer(flowFile, REL_SUCCESS);
        getLogger().info("Successfully published cloudwatch metric for {}", new Object[] { flowFile });
    } catch (final Exception e) {
        getLogger().error("Failed to publish cloudwatch metric for {} due to {}", new Object[] { flowFile, e });
        flowFile = session.penalize(flowFile);
        session.transfer(flowFile, REL_FAILURE);
    }

}

From source file:org.web.online.cloudwatch.tomcat.valve.ElapsedTimeAggregator.java

License:Apache License

/**
 * Collect the aggregated values (min, max, count, sum) into a
 * StatisticSet and send the data to Cloud Watch
 *///  w ww  . ja  va  2  s  .  co  m
@Override
public void run() {

    PutMetricDataRequest localPutMetricDataRequest = zeroValuePutMetricDataRequest;
    MetricDatum metricDatum = localPutMetricDataRequest.getMetricData().get(0);

    if (sampleCount > 0) {
        localPutMetricDataRequest = putMetricDataRequest;
        metricDatum = localPutMetricDataRequest.getMetricData().get(0);
        StatisticSet statisticSet = metricDatum.getStatisticValues();
        synchronized (lock) {
            statisticSet.setMaximum(maximum);
            statisticSet.setMinimum(minimum);
            statisticSet.setSampleCount(sampleCount);
            statisticSet.setSum(sum);

            minimum = Double.MAX_VALUE;
            maximum = Double.MIN_VALUE;
            sampleCount = 0;
            sum = 0;
        }
    }

    metricDatum.setTimestamp(new Date());

    if (log.isDebugEnabled()) {
        log.debug("sending " + localPutMetricDataRequest);
    }

    cloudWatchClient.putMetricData(localPutMetricDataRequest);
}