def sendMetrics()

in src/main/scala/com/gu/elasticsearchmonitor/CloudwatchMetrics.scala [76:89]


  def sendMetrics(clusterName: String, metrics: List[MetricDatum], logger: LambdaLogger): Unit = {

    logger.log(s"About to send ${metrics.size} metrics", LogLevel.INFO)
    val metricBatches = metrics.grouped(20) // hard limit of 20 items on cloudwatch's side

    metricBatches.foreach { batch =>
      logger.log(s"Sending a batch of ${batch.size} metrics to cloudwatch", LogLevel.INFO)
      val putMetricDataRequest = PutMetricDataRequest()
      putMetricDataRequest.setNamespace(s"${env.stack}/$clusterName")
      putMetricDataRequest.setMetricData(batch.asJava)

      cloudWatch.putMetricData(putMetricDataRequest)
    }
  }