final List<MetricDatum> result = new ArrayList<MetricDatum>();
final Dimension metricDimension = new Dimension()
.withName(Dimensions.MetricType.name())
.withValue(metricName);
// non-request type specific metric datum
final MetricDatum first = new MetricDatum()
.withMetricName(req.getServiceName())
.withDimensions(metricDimension)
.withUnit(StandardUnit.Count)
.withValue(Double.valueOf(count))
.withTimestamp(endTimestamp(ti));
result.add(first);
if (includesRequestType) {
// additional request type specific metric datum
Dimension requestDimension = new Dimension()
.withName(Dimensions.RequestType.name())
.withValue(requestType(req));
final MetricDatum second =
newMetricDatum(first, metricDimension, requestDimension);
result.add(second);
}
return result;
}