in src/main/scala/com/gu/flexible/snapshotter/SnapshottingLambda.scala [85:102]
def logResultsAttempts(succeeded: Seq[Attempt[PutObjectResult]], successMetric: Option[MetricName] = None,
failureMetric: Option[MetricName] = None)(implicit cloudWatchClient:AmazonCloudWatch, config: CommonConfig): Future[Unit] = {
Future.sequence(succeeded.map(_.asFuture)).map { attempts =>
attempts.foreach {
case Left(failures) =>
failureMetric.map { metric =>
CloudWatchLogic.putMetricData(metric -> MetricValue(failures.errors.size, MetricValue.Count))
}
failures.errors.foreach(_.logTo(log))
case Right(result) =>
successMetric.map { metric =>
CloudWatchLogic.putMetricData(metric -> MetricValue(1.0, MetricValue.Count)
)
}
log.info(s"SUCCESS: $result")
}
}
}