Skip to content

Commit b4ddade

Browse files
authored
Smoke test for custom events with OTel API (#4190)
1 parent d2d8b52 commit b4ddade

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

smoke-tests/apps/LiveMetrics/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ dependencies {
77
implementation("log4j:log4j:1.2.17")
88
implementation("io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations:1.22.1")
99
implementation("com.azure:azure-json:1.0.0")
10-
implementation("com.azure:azure-monitor-opentelemetry-autoconfigure:1.0.0-beta.1")
10+
implementation("com.azure:azure-monitor-opentelemetry-autoconfigure:1.1.0")
1111
}

smoke-tests/apps/OpenTelemetryApiLogBridge/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package com.microsoft.applicationinsights.smoketestapp;
55

66
import io.opentelemetry.api.GlobalOpenTelemetry;
7+
import io.opentelemetry.api.common.AttributeKey;
78
import io.opentelemetry.api.logs.Severity;
89
import io.opentelemetry.semconv.ExceptionAttributes;
910
import java.io.PrintWriter;
@@ -37,4 +38,16 @@ public String testCustomExceptionTypeAndMessage() {
3738
.emit();
3839
return "OK!";
3940
}
41+
42+
@GetMapping("/test-custom-event")
43+
public String testCustomEvent() {
44+
GlobalOpenTelemetry.get()
45+
.getLogsBridge()
46+
.get("my logger")
47+
.logRecordBuilder()
48+
.setAttribute(AttributeKey.stringKey("microsoft.custom_event.name"), "my_custom_event")
49+
.setSeverity(Severity.INFO)
50+
.emit();
51+
return "OK!";
52+
}
4053
}

smoke-tests/apps/OpenTelemetryApiLogBridge/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiLogBridgeTest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import com.microsoft.applicationinsights.smoketest.schemav2.Data;
2121
import com.microsoft.applicationinsights.smoketest.schemav2.Envelope;
22+
import com.microsoft.applicationinsights.smoketest.schemav2.EventData;
2223
import com.microsoft.applicationinsights.smoketest.schemav2.ExceptionData;
2324
import com.microsoft.applicationinsights.smoketest.schemav2.RequestData;
2425
import java.util.List;
@@ -60,6 +61,33 @@ void testCustomExceptionTypeAndMessage() throws Exception {
6061
.isEqualTo("This is an custom exception with custom exception type");
6162
}
6263

64+
@Test
65+
@TargetUri("/test-custom-event")
66+
void testCustomEvent() throws Exception {
67+
List<Envelope> rdList = testing.mockedIngestion.waitForItems("RequestData", 1);
68+
Envelope rdEnvelope = rdList.get(0);
69+
70+
RequestData rd = (RequestData) ((Data<?>) rdEnvelope.getData()).getBaseData();
71+
assertThat(rd.getUrl())
72+
.matches("http://localhost:[0-9]+/OpenTelemetryApiLogBridge/test-custom-event");
73+
assertThat(rd.getResponseCode()).isEqualTo("200");
74+
assertThat(rd.getSuccess()).isTrue();
75+
assertThat(rd.getSource()).isNull();
76+
assertThat(rd.getProperties()).hasSize(1);
77+
assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True");
78+
79+
assertThat(rdEnvelope.getIKey()).isEqualTo("00000000-0000-0000-0000-0FEEDDADBEEF");
80+
assertThat(rdEnvelope.getTags())
81+
.hasEntrySatisfying("ai.internal.sdkVersion", v -> assertThat(v).startsWith("java:3."));
82+
83+
String operationId = rdEnvelope.getTags().get("ai.operation.id");
84+
List<Envelope> edList =
85+
testing.mockedIngestion.waitForItemsInOperation("EventData", 1, operationId);
86+
assertThat(edList.size()).isNotZero();
87+
EventData ed = (EventData) ((Data<?>) edList.get(0).getData()).getBaseData();
88+
assertThat(ed.getName()).isEqualTo("my_custom_event");
89+
}
90+
6391
@Environment(TOMCAT_8_JAVA_8)
6492
static class Tomcat8Java8Test extends OpenTelemetryApiLogBridgeTest {}
6593

0 commit comments

Comments
 (0)