Skip to content

Commit cf5a2ba

Browse files
authored
fixed the bug of EmfMetricLoggingPublisher not properly publishing Long metrics (#6210)
* fixed the bug of not properly publishing Long metrics * changelog added
1 parent 9b0a0e1 commit cf5a2ba

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "bugfix",
3+
"category": "EmfMetricLoggingPublisher",
4+
"contributor": "",
5+
"description": "Fixed the bug that EmfMetricLoggingPublisher not properly publishing Long type metrics"
6+
}

metric-publishers/emf-metric-logging-publisher/src/main/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,13 @@ private void processAndWriteValue(JsonWriter jsonWriter, MetricRecord<?> mRecord
179179
return;
180180
}
181181

182-
if (Integer.class.isAssignableFrom(valueClass) || Long.class.isAssignableFrom(valueClass)) {
182+
if (Integer.class.isAssignableFrom(valueClass)) {
183183
jsonWriter.writeValue((Integer) value);
184184
}
185+
186+
if (Long.class.isAssignableFrom(valueClass)) {
187+
jsonWriter.writeValue((Long) value);
188+
}
185189
}
186190

187191
private List<String> createEmfStrings(Map<SdkMetric<?>, List<MetricRecord<?>>> aggregatedMetrics) {

metric-publishers/emf-metric-logging-publisher/src/test/java/software/amazon/awssdk/metrics/publishers/emf/internal/MetricEmfConverterTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,4 +233,21 @@ void ConvertMetricCollectionToEMF_shouldConformToSchema() throws Exception {
233233

234234
assertThat(errors).isEmpty();
235235
}
236+
237+
@Test
238+
void ConvertMetricCollectionToEMF_longValueShouldSucceed() {
239+
SdkMetric<Long> metric = SdkMetric.create("TestMetric",
240+
Long.class,
241+
MetricLevel.INFO,
242+
MetricCategory.CUSTOM);
243+
244+
MetricCollector metricCollector = MetricCollector.create("test");
245+
Long metricValue = 42L;
246+
metricCollector.reportMetric(metric, metricValue);
247+
List<String> emfLogs = metricEmfConverterDefault.convertMetricCollectionToEmf(metricCollector.collect());
248+
249+
assertThat(emfLogs).containsOnly("{\"_aws\":{\"Timestamp\":12345678,\"LogGroupName\":\"my_log_group_name\","
250+
+ "\"CloudWatchMetrics\":[{\"Namespace\":\"AwsSdk/JavaSdk2\",\"Dimensions\":[[]],"
251+
+ "\"Metrics\":[{\"Name\":\"TestMetric\"}]}]},\"TestMetric\":42}");
252+
}
236253
}

0 commit comments

Comments
 (0)