private def perfMetricDatum()

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)
      ()
    }
  }