Skip to content

Properly ingest dotnetup data after data-x-migration#54051

Merged
nagilson merged 78 commits into
dotnet:release/dnupfrom
nagilson:nagilson-dnup-otel-migration-for-data-x
May 12, 2026
Merged

Properly ingest dotnetup data after data-x-migration#54051
nagilson merged 78 commits into
dotnet:release/dnupfrom
nagilson:nagilson-dnup-otel-migration-for-data-x

Conversation

@nagilson

@nagilson nagilson commented Apr 22, 2026

Copy link
Copy Markdown
Member

Resolves #52785

The new dotnetup dashboard added by this PR can be viewed under VPN + Authentication on https://dataexplorer.azure.com/dashboards/cbf42ddd-1ef6-415d-b64d-e6f4d15bcaa8

Samples:
image
image

image image image

History:
#52792 added working telemetry with an app insights board to dotnetup but used a separate implementation as the SDK did not use otel (not native aot)
#53343 moved to the official key which broke and made all data get lost (intentional)
#53181 implemented OpenTelemetry usage within the .NET SDK.

This PR:

  • Makes us produce traces via the ILogger interface that get populated from spans. Sending data to a 'logger' is the proper way to produce data that gets sent to the traces table. (events under activities can cause certain data to get traced but is not preferred: https://opentelemetry.io/docs/concepts/signals/traces/) instead of just spans, as spans don't get consumed by the data-x platform (devdiv data team implementation) which ingests our data.
  • The dev div data implementation is a black box to us that transforms the data sent to app insights, so this work involved figuring out what they were doing to the data to fix the queries.
  • Reworks the dashboard to query the correct tables and properties as the data team enforces these standards for property names
  • Does not remove spans as they can still be useful for an aspire like dashboard for local perf investigations via enabled environment variables.
  • Adds telemetry for options used on dotnetup commands - strings or any user input is sent as 'redacted'

Follow Up:
#54165 merge sdk code changes into sdk main

very wip code, but:

spans don't get consumed by the data-x-platform only events which go into the 'traces' table so we need to send this data as a 'trace'  (event) but also still have the spans so we can use the aspire like dashboards

I believe duration and other span properties dont get added to the activities so we need to add them ourselves.
… and activity

also add test failing if the code tries settag
we observe spotty behavior by running at scale in ci for now!
Comment thread src/Installer/dotnetup/GarbageCollector.cs Outdated
Comment thread src/Installer/dotnetup/Program.cs Outdated
Comment thread src/Installer/dotnetup/Commands/Shared/InstallWorkflow.cs
@nagilson nagilson requested review from dsplaisted and removed request for a team and dsplaisted May 4, 2026 23:29
nagilson added 4 commits May 4, 2026 16:36
…nstallation -> D:\a\_work\1\s\artifacts\bin\Microsoft.Dotnet.Installation\Debug\net11.0\Microsoft.Dotnet.Installation.dll D:\a\_work\1\s\src\Installer\dotnetup\Telemetry\TelemetryCommonProperties.cs(4,1): error IDE0005: Using directive is unnecessary. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [D:\a\_work\1\s\src\Installer\dotnetup\dotnetup.csproj]  Build FAILED.  D:\a\_work\1\s\src\Installer\dotnetup\Telemetry\TelemetryCommonProperties.cs(4,1): error IDE0005: Using directive is unnecessary. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [D:\a\_work\1\s\src\Installer\dotnetup\dotnetup.csproj]     0 Warning(s)     1 Error(s)  Time Elapsed 00:00:06.72   Microsoft.Dotnet.Installation -> D:\a\_work\1\s\artifacts\bin\Microsoft.Dotnet.Installation\Debug\net11.0\Microsoft.Dotnet.Installation.dll D:\a\_work\1\s\src\Installer\dotnetup\Telemetry\TelemetryCommonProperties.cs(4,1): error IDE0005: Using directive is unnecessary. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [D:\a\_work\1\s\src\Installer\dotnetup\dotnetup.csproj]  Build FAILED.  D:\a\_work\1\s\src\Installer\dotnetup\Telemetry\TelemetryCommonProperties.cs(4,1): error IDE0005: Using directive is unnecessary. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [D:\a\_work\1\s\src\Installer\dotnetup\dotnetup.csproj]     0 Warning(s)     1 Error(s)

@dsplaisted dsplaisted left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

Comment thread src/Installer/Microsoft.Dotnet.Installation/Internal/Metrics.cs
Comment thread src/Installer/dotnetup/Telemetry/DotnetupTelemetry.cs Outdated
Comment thread src/Installer/dotnetup/Telemetry/DotnetupTelemetry.cs Outdated
Comment thread src/Installer/dotnetup/Telemetry/DotnetupTelemetry.cs
Comment thread src/Installer/dotnetup/CommandBase.cs Outdated
Comment thread src/Installer/.github/copilot-instructions.md Outdated
Comment thread src/Installer/dotnetup/Commands/Dotnet/DotnetCommand.cs Outdated
Comment thread src/Installer/dotnetup/Commands/Runtime/Update/RuntimeUpdateCommand.cs Outdated
Comment thread src/Installer/dotnetup/Commands/Shared/UpdateWorkflow.cs Outdated
@nagilson nagilson enabled auto-merge May 12, 2026 20:05
@nagilson nagilson disabled auto-merge May 12, 2026 21:32
@nagilson nagilson merged commit a8ec9a6 into dotnet:release/dnup May 12, 2026
21 of 29 checks passed
@nagilson

Copy link
Copy Markdown
Member Author

known issues in the SDK repo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants