in src/cloudwatch/modules/flusher.py [0:0]
def _flush(self):
"""
Batches and puts metrics to CloudWatch
"""
self.last_flush_time = time.time()
metric_map_size = len(self.metric_map)
if self.metric_map:
prepare_batch = self._prepare_batch()
try:
while True:
metric_batch = prepare_batch.next()
if not metric_batch:
break
self.client.put_metric_data(MetricDataStatistic.NAMESPACE, metric_batch)
if len(metric_batch) < self._MAX_METRICS_PER_PUT_REQUEST:
break
except StopIteration, e:
if metric_map_size % self._MAX_METRICS_PER_PUT_REQUEST != 0 or len(self.metric_map) != 0:
self._LOGGER.error("_flush error: " + str(e) + " Original map size: " + str(metric_map_size))