From 1ba6c2942990d59814de8c548ed754d3b2af7b4e Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 26 Aug 2025 15:49:53 -0700 Subject: [PATCH 1/5] Add test --- .../applicationinsights/smoketestapp/TestController.java | 1 + .../OpenTelemetryApiSupportControllerSpansEnabledTest.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java index f4e1ff7b1b0..3b98166641c 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java @@ -20,6 +20,7 @@ public String testApi() { Span.current().setAttribute("myattr1", "myvalue1"); Span.current().setAttribute("myattr2", "myvalue2"); Span.current().setAttribute("enduser.id", "myuser"); + Span.current().setAttribute("enduser.pseudo.id", "mypseudo"); Span.current().updateName("myspanname"); return "OK!"; } diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java index 1bc05995639..5b61d008f7a 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java @@ -54,7 +54,8 @@ void testApi() throws Exception { .isEqualTo("testroleinstance"); assertThat(telemetry.rddEnvelope1.getTags()) .hasEntrySatisfying("ai.internal.sdkVersion", v -> assertThat(v).startsWith("java:3.")); - assertThat(telemetry.rddEnvelope1.getTags()).containsEntry("ai.user.id", "myuser"); + assertThat(telemetry.rddEnvelope1.getTags()).containsEntry("ai.user.authUserId", "myuser"); + assertThat(telemetry.rddEnvelope1.getTags()).containsEntry("ai.user.id", "mypseudo"); SmokeTestExtension.assertParentChild( telemetry.rd, From 05ce0e314b3b938ee3c1af28beaab16a045224ae Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 26 Aug 2025 15:50:34 -0700 Subject: [PATCH 2/5] TEMPORARY --- .github/workflows/build-common.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-common.yml b/.github/workflows/build-common.yml index 3a744dcb52c..f42db99ed1e 100644 --- a/.github/workflows/build-common.yml +++ b/.github/workflows/build-common.yml @@ -10,7 +10,7 @@ on: env: # set this to : to build and test with an unreleased # version of the azure-monitor-opentelemetry-autoconfigure dependency - AZURE_MONITOR_OPENTELEMETRY_AUTOCONFIGURE_SNAPSHOT: + AZURE_MONITOR_OPENTELEMETRY_AUTOCONFIGURE_SNAPSHOT: trask/azure-sdk-for-java:user-and-session-id jobs: spotless: From 18a006580df61ffc20b04ad69854134835acaa2b Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 27 Aug 2025 12:39:21 -0700 Subject: [PATCH 3/5] fix --- .../applicationinsightsweb/UserContextInstrumentation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/instrumentation/applicationinsights-web-2.3/src/main/java/io/opentelemetry/javaagent/instrumentation/applicationinsightsweb/UserContextInstrumentation.java b/agent/instrumentation/applicationinsights-web-2.3/src/main/java/io/opentelemetry/javaagent/instrumentation/applicationinsightsweb/UserContextInstrumentation.java index adeec540796..6363d883040 100644 --- a/agent/instrumentation/applicationinsights-web-2.3/src/main/java/io/opentelemetry/javaagent/instrumentation/applicationinsightsweb/UserContextInstrumentation.java +++ b/agent/instrumentation/applicationinsights-web-2.3/src/main/java/io/opentelemetry/javaagent/instrumentation/applicationinsightsweb/UserContextInstrumentation.java @@ -43,7 +43,7 @@ public static void methodEnter( @Advice.This UserContext userContext, @Advice.Argument(0) String name) { Span span = VirtualField.find(UserContext.class, Span.class).get(userContext); if (span != null) { - span.setAttribute("enduser.id", name); + span.setAttribute("enduser.pseudo.id", name); } } } From 9a47e2ca6feecbb88043ef2e04c8082f1cf7d255 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 27 Aug 2025 16:46:33 -0700 Subject: [PATCH 4/5] up --- .../src/test/java/ApplicationInsightsWebTest.java | 2 +- .../smoketest/OpenTelemetryApiSupportTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/agent/instrumentation/applicationinsights-web-2.3/src/test/java/ApplicationInsightsWebTest.java b/agent/instrumentation/applicationinsights-web-2.3/src/test/java/ApplicationInsightsWebTest.java index b7d0e1a2c0c..a8064d8ae83 100644 --- a/agent/instrumentation/applicationinsights-web-2.3/src/test/java/ApplicationInsightsWebTest.java +++ b/agent/instrumentation/applicationinsights-web-2.3/src/test/java/ApplicationInsightsWebTest.java @@ -69,7 +69,7 @@ void setRequestUser() { .hasAttributesSatisfyingExactly( equalTo(CodeIncubatingAttributes.CODE_NAMESPACE, "Code"), equalTo(CodeIncubatingAttributes.CODE_FUNCTION, "setUser"), - equalTo(EnduserIncubatingAttributes.ENDUSER_ID, "myuser")), + equalTo(EnduserIncubatingAttributes.ENDUSER_PSEUDO_ID, "myuser")), span -> span.hasName("Code.internalSetUser") .hasKind(INTERNAL) diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index 0953e282707..04d78068b95 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -50,7 +50,8 @@ void testApi() throws Exception { assertThat(telemetry.rdEnvelope.getTags()) .hasEntrySatisfying("ai.internal.sdkVersion", v -> assertThat(v).startsWith("java:3.")); - assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.user.id", "myuser"); + assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.user.authUserId", "myuser"); + assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.user.id", "mypseudo"); } @Test From ed8589680a2ec8e27018f5b5c5e00cad7ee0784a Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 28 Aug 2025 12:28:50 -0700 Subject: [PATCH 5/5] session-id --- .github/workflows/build-common.yml | 2 +- .../applicationinsights/smoketestapp/TestController.java | 1 + .../OpenTelemetryApiSupportControllerSpansEnabledTest.java | 1 + .../smoketest/OpenTelemetryApiSupportTest.java | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-common.yml b/.github/workflows/build-common.yml index f42db99ed1e..6778c7461b9 100644 --- a/.github/workflows/build-common.yml +++ b/.github/workflows/build-common.yml @@ -10,7 +10,7 @@ on: env: # set this to : to build and test with an unreleased # version of the azure-monitor-opentelemetry-autoconfigure dependency - AZURE_MONITOR_OPENTELEMETRY_AUTOCONFIGURE_SNAPSHOT: trask/azure-sdk-for-java:user-and-session-id + AZURE_MONITOR_OPENTELEMETRY_AUTOCONFIGURE_SNAPSHOT: trask/azure-sdk-for-java:session-id jobs: spotless: diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java index 3b98166641c..bf59ec2117e 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/main/java/com/microsoft/applicationinsights/smoketestapp/TestController.java @@ -21,6 +21,7 @@ public String testApi() { Span.current().setAttribute("myattr2", "myvalue2"); Span.current().setAttribute("enduser.id", "myuser"); Span.current().setAttribute("enduser.pseudo.id", "mypseudo"); + Span.current().setAttribute("session.id", "mysession"); Span.current().updateName("myspanname"); return "OK!"; } diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java index 5b61d008f7a..5d5578e3218 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java @@ -56,6 +56,7 @@ void testApi() throws Exception { .hasEntrySatisfying("ai.internal.sdkVersion", v -> assertThat(v).startsWith("java:3.")); assertThat(telemetry.rddEnvelope1.getTags()).containsEntry("ai.user.authUserId", "myuser"); assertThat(telemetry.rddEnvelope1.getTags()).containsEntry("ai.user.id", "mypseudo"); + assertThat(telemetry.rddEnvelope1.getTags()).containsEntry("ai.session.id", "mysession"); SmokeTestExtension.assertParentChild( telemetry.rd, diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index 04d78068b95..bb90b290cec 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -52,6 +52,7 @@ void testApi() throws Exception { .hasEntrySatisfying("ai.internal.sdkVersion", v -> assertThat(v).startsWith("java:3.")); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.user.authUserId", "myuser"); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.user.id", "mypseudo"); + assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.session.id", "mysession"); } @Test