in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Cloudwatch.scala [47:68]
private def perfMetricDatum(name: String, unit: StandardUnit, value: Double) =
new MetricDatum()
.withMetricName(name)
.withUnit(unit)
.withValue(value)
def sendResults(stage: String, platform: Option[Platform]): Pipe[IO, SendingResults, Unit] = _.evalMap { results =>
IO.delay {
val dimension = new Dimension().withName("platform").withValue(platform.map(_.toString).getOrElse("unknown"))
val metrics: Seq[MetricDatum] = Seq(
countDatum("success", results.successCount, dimension),
countDatum("failure", results.failureCount, dimension),
countDatum("dryrun", results.dryRunCount, dimension),
countDatum("total", results.total, dimension)
)
val req = new PutMetricDataRequest()
.withNamespace(s"Notifications/$stage/$senderMetricNs")
.withMetricData(metrics.asJava)
cloudwatchClient.putMetricData(req)
()
}
}