List of usage examples for com.amazonaws.services.cloudwatch.model MetricDatum setStatisticValues
public void setStatisticValues(StatisticSet statisticValues)
The statistical values for the metric.
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();//from w ww .jav a2 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); } }