Problem
MAU today counts local/desktop users only. CI/CD and agent traffic is excluded, even though it is a large share of overall usage. As a result:
- We cannot report a total user number.
- We cannot see users transitioning from local to CI/CD, which is a success signal, not attrition.
- Agent usage is growing and is invisible in our headline metrics.
What we'll do
Build separate tables so each surface can be reported on its own, plus a combined view:
- Local users (MAU)
- CI/CD
- Agent
- Combined — all three added together for a total user count
These should be driven by execution.environment, which azd already emits.
Known classification bugs to fix as part of this
cli/azd/internal/tracing/resource/exec_environment.go joins modifiers onto the base value with ; (for example Azure Pipelines;Azure App Spaces Portal), but the Kusto side matches values exactly, so any modified value falls through the classification.
GitHub Copilot App is defined in fields.go but is missing from the Kusto environment lists, so those users are misclassified.
Classification should be defined in one place so adding a new environment value is a single change.
Done when
- Four tables exist and agree with each other.
- Every value azd emits is classified, including modified values.
- Adding a new environment value is a one-place change.
Problem
MAU today counts local/desktop users only. CI/CD and agent traffic is excluded, even though it is a large share of overall usage. As a result:
What we'll do
Build separate tables so each surface can be reported on its own, plus a combined view:
These should be driven by
execution.environment, which azd already emits.Known classification bugs to fix as part of this
cli/azd/internal/tracing/resource/exec_environment.gojoins modifiers onto the base value with;(for exampleAzure Pipelines;Azure App Spaces Portal), but the Kusto side matches values exactly, so any modified value falls through the classification.GitHub Copilot Appis defined infields.gobut is missing from the Kusto environment lists, so those users are misclassified.Classification should be defined in one place so adding a new environment value is a single change.
Done when