From c46b0206d91e399ec7d1ad5c0a9d5ca27fbdc946 Mon Sep 17 00:00:00 2001 From: yibole Date: Wed, 25 Jun 2025 12:06:23 -0700 Subject: [PATCH 1/2] fixed the bug of not properly publishing Long metrics --- .../emf/internal/MetricEmfConverter.java | 6 +++++- .../emf/internal/MetricEmfConverterTest.java | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/metric-publishers/emf-metric-logging-publisher/src/main/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverter.java b/metric-publishers/emf-metric-logging-publisher/src/main/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverter.java index 7973fa1fa0de..3ab16d3b0878 100644 --- a/metric-publishers/emf-metric-logging-publisher/src/main/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverter.java +++ b/metric-publishers/emf-metric-logging-publisher/src/main/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverter.java @@ -179,9 +179,13 @@ private void processAndWriteValue(JsonWriter jsonWriter, MetricRecord mRecord return; } - if (Integer.class.isAssignableFrom(valueClass) || Long.class.isAssignableFrom(valueClass)) { + if (Integer.class.isAssignableFrom(valueClass)) { jsonWriter.writeValue((Integer) value); } + + if (Long.class.isAssignableFrom(valueClass)) { + jsonWriter.writeValue((Long) value); + } } private List createEmfStrings(Map, List>> aggregatedMetrics) { diff --git a/metric-publishers/emf-metric-logging-publisher/src/test/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverterTest.java b/metric-publishers/emf-metric-logging-publisher/src/test/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverterTest.java index 07473f5afc02..a01af0f96320 100644 --- a/metric-publishers/emf-metric-logging-publisher/src/test/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverterTest.java +++ b/metric-publishers/emf-metric-logging-publisher/src/test/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverterTest.java @@ -233,4 +233,21 @@ void ConvertMetricCollectionToEMF_shouldConformToSchema() throws Exception { assertThat(errors).isEmpty(); } + + @Test + void ConvertMetricCollectionToEMF_longValueShouldSucceed() { + SdkMetric metric = SdkMetric.create("TestMetric", + Long.class, + MetricLevel.INFO, + MetricCategory.CUSTOM); + + MetricCollector metricCollector = MetricCollector.create("test"); + Long metricValue = 42L; + metricCollector.reportMetric(metric, metricValue); + List emfLogs = metricEmfConverterDefault.convertMetricCollectionToEmf(metricCollector.collect()); + + assertThat(emfLogs).containsOnly("{\"_aws\":{\"Timestamp\":12345678,\"LogGroupName\":\"my_log_group_name\"," + + "\"CloudWatchMetrics\":[{\"Namespace\":\"AwsSdk/JavaSdk2\",\"Dimensions\":[[]]," + + "\"Metrics\":[{\"Name\":\"TestMetric\"}]}]},\"TestMetric\":42}"); + } } \ No newline at end of file From 5d4c60d5faaefb1261ade58f84b1dcc923490df4 Mon Sep 17 00:00:00 2001 From: yibole Date: Wed, 25 Jun 2025 13:19:46 -0700 Subject: [PATCH 2/2] changelog added --- .changes/next-release/bugfix-AWSSDKforJavav2-17f90b1.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changes/next-release/bugfix-AWSSDKforJavav2-17f90b1.json diff --git a/.changes/next-release/bugfix-AWSSDKforJavav2-17f90b1.json b/.changes/next-release/bugfix-AWSSDKforJavav2-17f90b1.json new file mode 100644 index 000000000000..edb1dd4b6509 --- /dev/null +++ b/.changes/next-release/bugfix-AWSSDKforJavav2-17f90b1.json @@ -0,0 +1,6 @@ +{ + "type": "bugfix", + "category": "EmfMetricLoggingPublisher", + "contributor": "", + "description": "Fixed the bug that EmfMetricLoggingPublisher not properly publishing Long type metrics" +}