CloudWatch: Posted custom metric data successfully, but can't find the data

0

Using this code: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javav2/example_code/cloudwatch/src/main/java/com/example/cloudwatch/PutMetricAlarm.java

I was able to put a custom metric data successfully:

Successfully put data point 123.000000

However, I'm unable to find the data, cloudwatch metric screenshot: https://www.screencast.com/t/RI3pq8KWmww

I've double checked the region

My scala code:

object TestClass extends App {
  PutMetricData.main(123)
}

object PutMetricData {
  def main(args: Integer): Unit = {
    val dataPoint = args.toDouble
    val region = Region.US_WEST_2
    val cw = CloudWatchClient.builder.region(region).credentialsProvider(ProfileCredentialsProvider.create).build
    putMetData(cw, dataPoint)
    cw.close()
  }

  def putMetData(cw: CloudWatchClient, dataPoint: Double): Unit = {
    try {
      val time = ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT)
      val instant = Instant.parse(time)
      val datum = MetricDatum.builder.metricName("PAGES_VISITED1").unit(StandardUnit.NONE).value(dataPoint).timestamp(instant).build
      val request = PutMetricDataRequest.builder.namespace("SITE/TRAFFIC1").metricData(datum).build
      cw.putMetricData(request)
    } catch {
      case e: CloudWatchException =>
      System.err.println(e.awsErrorDetails.errorMessage)
      System.exit(1)
    }
    System.out.printf("Successfully put data point %f", dataPoint)
  }
}

Context: I'm new to AWS, I didn't create any metricNames or nameSpace in AWS, I'm assuming I can change the MetricName & namespace in the code and it'll create it in AWS. Do I have to specify an existing namespace or metricName?

kn
gefragt vor 2 Jahren440 Aufrufe
1 Antwort
0

I'm not a Scala expert but the code looks good. No need to specify an existing namespace or metric name.

Usually problems like this are caused by timestamp being incorrect, e.g. being in seconds instead of milliseconds - those would get silently dropped and not generate an error. Your code seems to follow the Java SDK exactly though. 🤔

AWS
beantwortet vor 2 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen