diff --git a/cli/azd/internal/tracing/fields/fields.go b/cli/azd/internal/tracing/fields/fields.go index de360f23974..45f5031ed31 100644 --- a/cli/azd/internal/tracing/fields/fields.go +++ b/cli/azd/internal/tracing/fields/fields.go @@ -321,8 +321,9 @@ const ( // Environment modifiers. These are not environments themselves, but rather modifiers to the environment // that signal specific types of usages. - EnvModifierAzureSpace = "Azure App Spaces Portal" - EnvModifierMicrosoftFoundrySkill = "Microsoft Foundry Skill" + EnvModifierAzureSpace = "Azure App Spaces Portal" + EnvModifierMicrosoftFoundryCanvas = "Microsoft Foundry Canvas" + EnvModifierMicrosoftFoundrySkill = "Microsoft Foundry Skill" ) // All possible enumerations of AccountTypeKey diff --git a/cli/azd/internal/tracing/resource/exec_environment.go b/cli/azd/internal/tracing/resource/exec_environment.go index eb323344da1..b41825a7001 100644 --- a/cli/azd/internal/tracing/resource/exec_environment.go +++ b/cli/azd/internal/tracing/resource/exec_environment.go @@ -107,6 +107,9 @@ func execEnvModifiers() []string { if strings.Contains(userAgent, "azure_app_space_portal") { modifiers = append(modifiers, fields.EnvModifierAzureSpace) } + if strings.Contains(userAgent, "microsoft_foundry_canvas") { + modifiers = append(modifiers, fields.EnvModifierMicrosoftFoundryCanvas) + } if strings.Contains(userAgent, "microsoft_foundry_skill") { modifiers = append(modifiers, fields.EnvModifierMicrosoftFoundrySkill) } diff --git a/cli/azd/internal/tracing/resource/resource_test.go b/cli/azd/internal/tracing/resource/resource_test.go index 6f8a9ee2c2a..a610caa8901 100644 --- a/cli/azd/internal/tracing/resource/resource_test.go +++ b/cli/azd/internal/tracing/resource/resource_test.go @@ -278,11 +278,17 @@ func TestExecEnvModifiers(t *testing.T) { userAgent: "microsoft_foundry_skill", want: []string{fields.EnvModifierMicrosoftFoundrySkill}, }, + { + name: "Microsoft Foundry Canvas", + userAgent: "microsoft_foundry_canvas", + want: []string{fields.EnvModifierMicrosoftFoundryCanvas}, + }, { name: "multiple modifiers", - userAgent: "azure_app_space_portal microsoft_foundry_skill", + userAgent: "azure_app_space_portal microsoft_foundry_canvas microsoft_foundry_skill", want: []string{ fields.EnvModifierAzureSpace, + fields.EnvModifierMicrosoftFoundryCanvas, fields.EnvModifierMicrosoftFoundrySkill, }, }, diff --git a/cli/azd/test/functional/telemetry_test.go b/cli/azd/test/functional/telemetry_test.go index 8258d67faf6..a9b1c8eb197 100644 --- a/cli/azd/test/functional/telemetry_test.go +++ b/cli/azd/test/functional/telemetry_test.go @@ -240,7 +240,7 @@ func Test_CLI_Telemetry_NestedCommands(t *testing.T) { // set environment modifiers cli.Env = append( cli.Env, - "AZURE_DEV_USER_AGENT=azure_app_space_portal:v1.0.0 microsoft_foundry_skill", + "AZURE_DEV_USER_AGENT=azure_app_space_portal:v1.0.0 microsoft_foundry_canvas microsoft_foundry_skill", ) // set a fixed traceparent to verify trace ID propagation for commands and nested commands @@ -442,6 +442,9 @@ func verifyResource( if strings.Contains(env, "azure_app_space_portal") { require.Contains(t, m[fields.ExecutionEnvironmentKey.Key], ";"+fields.EnvModifierAzureSpace) } + if strings.Contains(env, "microsoft_foundry_canvas") { + require.Contains(t, m[fields.ExecutionEnvironmentKey.Key], ";"+fields.EnvModifierMicrosoftFoundryCanvas) + } if strings.Contains(env, "microsoft_foundry_skill") { require.Contains(t, m[fields.ExecutionEnvironmentKey.Key], ";"+fields.EnvModifierMicrosoftFoundrySkill) } diff --git a/docs/reference/telemetry-data.md b/docs/reference/telemetry-data.md index 47f001122e0..900585be725 100644 --- a/docs/reference/telemetry-data.md +++ b/docs/reference/telemetry-data.md @@ -587,7 +587,8 @@ The `execution.environment` field identifies where azd is running. Format: `[;...]`. Base values: `Desktop`, `Visual Studio`, `Visual Studio Code`, `VS Code Azure GitHub Copilot`, `Azure CloudShell`, `Claude Code`, `GitHub Copilot CLI`, `Gemini`, `OpenCode`, `UnknownCI`, `Azure Pipelines`, `GitHub Actions`, `AppVeyor`, `Bamboo`, `BitBucket Pipelines`, `Travis CI`, `Circle CI`, `GitLab CI`, `Jenkins`, `AWS CodeBuild`, `Google Cloud Build`, `TeamCity`, `JetBrains Space`, `GitHub Codespaces`. Modifiers: `Azure App Spaces Portal`, `Microsoft Foundry Canvas`, `Microsoft Foundry Skill` | | Installer | `service.installer` | SystemMetadata | FeatureInsight | How azd was installed | ### Experimentation