/** * Given a list of MetricDatumWithKey, this method extracts the MetricDatum from each * MetricDatumWithKey and publishes those datums. * * @param dataToPublish a list containing all the MetricDatums to publish */ public void publishMetrics(List<MetricDatumWithKey<CloudWatchMetricKey>> dataToPublish) { for (int startIndex = 0; startIndex < dataToPublish.size(); startIndex += BATCH_SIZE) { int endIndex = Math.min(dataToPublish.size(), startIndex + BATCH_SIZE); PutMetricDataRequest.Builder request = PutMetricDataRequest.builder(); request = request.namespace(namespace); List<MetricDatum> metricData = new ArrayList<>(); for (int i = startIndex; i < endIndex; i++) { metricData.add(dataToPublish.get(i).datum); } request = request.metricData(metricData); try { cloudWatchClient.putMetricData(request.build()); log.debug("Successfully published {} datums.", endIndex - startIndex); } catch (CloudWatchException e) { log.warn("Could not publish {} datums to CloudWatch", endIndex - startIndex, e); } } } }
/** * Given a list of MetricDatumWithKey, this method extracts the MetricDatum from each * MetricDatumWithKey and publishes those datums. * * @param dataToPublish a list containing all the MetricDatums to publish */ public void publishMetrics(List<MetricDatumWithKey<CloudWatchMetricKey>> dataToPublish) { for (int startIndex = 0; startIndex < dataToPublish.size(); startIndex += BATCH_SIZE) { int endIndex = Math.min(dataToPublish.size(), startIndex + BATCH_SIZE); PutMetricDataRequest.Builder request = PutMetricDataRequest.builder(); request = request.namespace(namespace); List<MetricDatum> metricData = new ArrayList<>(); for (int i = startIndex; i < endIndex; i++) { metricData.add(dataToPublish.get(i).datum); } request = request.metricData(metricData); try { cloudWatchClient.putMetricData(request.build()); log.debug("Successfully published {} datums.", endIndex - startIndex); } catch (CloudWatchException e) { log.warn("Could not publish {} datums to CloudWatch", endIndex - startIndex, e); } } } }