Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions cli/azd/internal/tracing/fields/fields.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions cli/azd/internal/tracing/resource/exec_environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -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") {
Comment thread
qinezh marked this conversation as resolved.
modifiers = append(modifiers, fields.EnvModifierMicrosoftFoundryCanvas)
}
if strings.Contains(userAgent, "microsoft_foundry_skill") {
modifiers = append(modifiers, fields.EnvModifierMicrosoftFoundrySkill)
}
Expand Down
8 changes: 7 additions & 1 deletion cli/azd/internal/tracing/resource/resource_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
},
},
Expand Down
5 changes: 4 additions & 1 deletion cli/azd/test/functional/telemetry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
}
Expand Down
3 changes: 2 additions & 1 deletion docs/reference/telemetry-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,8 @@ The `execution.environment` field identifies where azd is running. Format: `<env
| `GitHub Codespaces` | GitHub Codespaces |
| Other CI systems | `AppVeyor`, `Bamboo`, `BitBucket Pipelines`, `Travis CI`, `Circle CI`, `GitLab CI`, `Jenkins`, `AWS CodeBuild`, `Google Cloud Build`, `TeamCity`, `JetBrains Space` |

**Modifiers:** `Azure App Spaces Portal` and `Microsoft Foundry Skill` may be appended as modifiers (`;` separated).
**Modifiers:** `Azure App Spaces Portal`, `Microsoft Foundry Canvas`, and `Microsoft Foundry Skill` may be appended as
modifiers (`;` separated).

## Data Nuances & Gotchas

Expand Down
2 changes: 1 addition & 1 deletion docs/specs/metrics-audit/telemetry-schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ These are set once at process startup via `resource.New()` and attached to every
| Runtime version | `process.runtime.version` | SystemMetadata | PerformanceAndHealth | Go version |
| Machine ID | `machine.id` | EndUserPseudonymizedInformation | BusinessInsight | MAC address hash |
| Dev Device ID | `machine.devdeviceid` | EndUserPseudonymizedInformation | BusinessInsight | SQM User ID |
| Execution environment | `execution.environment` | SystemMetadata | BusinessInsight | CI system detection |
| Execution environment | `execution.environment` | SystemMetadata | BusinessInsight | Format: `<environment>[;<modifier>...]`. 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
Expand Down
Loading