Add telemetry to categorize build failure reasons#13007
Add telemetry to categorize build failure reasons#13007YuliiaKovalova merged 13 commits intomainfrom
Conversation
|
Hello @@copilot, I noticed that you’re changing an .swr file or any file under src/Package/MSBuild.VSSetup.. Please make sure to validate this change by an experimental VS insertion. This is accomplished by pushing to an exp/* branch, which requires write permissions to this repo. |
- Added failure category properties to BuildTelemetry class - Implemented error tracking and categorization in LoggingService - Added PopulateBuildTelemetryWithErrors method to populate telemetry data - Created comprehensive tests for error categorization - Updated documentation with new telemetry data points The telemetry now tracks: - FailureCategory: Primary category of the first/most common error - Error counts by category (Compiler, MSBuildEngine, Tasks, SDK, NuGet, BuildCheck, Other) - FirstErrorCode: The first error code encountered Co-authored-by: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com>
- Changed collection expression to explicit constructor for compatibility - Added constant for MSB code minimum length - Added documentation comment for magic number Co-authored-by: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com>
Created BuildErrorTelemetryTracker class to handle error tracking and categorization, improving separation of concerns. LoggingService now delegates to this tracker instead of managing telemetry state directly. Changes: - Created BuildErrorTelemetryTracker.cs with all error categorization logic - Updated LoggingService to use tracker instance - Added BuildErrorTelemetryTracker to Microsoft.Build.csproj Co-authored-by: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR adds telemetry to categorize build failure reasons, enabling data-driven analysis of why builds fail. The implementation introduces a new BuildErrorTelemetryTracker class that tracks errors across seven categories (Compiler, MSBuildEngine, Tasks, SDK, NuGet, BuildCheck, Other) and populates telemetry properties with error counts and the primary failure category.
Changes:
- Added error categorization properties to BuildTelemetry (FailureCategory and 7 error count properties)
- Created BuildErrorTelemetryTracker class to encapsulate error tracking logic with optimized categorization
- Integrated error tracking into LoggingService to track errors as they're logged
- Updated BuildManager to populate telemetry with error data on build failure
- Added comprehensive test coverage for all error categories and telemetry serialization
- Updated telemetry documentation
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Framework/Telemetry/BuildTelemetry.cs | Added failure category and error count properties; updated telemetry serialization methods |
| src/Build/Microsoft.Build.csproj | Added BuildErrorTelemetryTracker.cs to project compilation |
| src/Build/BackEnd/Components/Logging/BuildErrorTelemetryTracker.cs | New class implementing error categorization logic with performance optimizations |
| src/Build/BackEnd/Components/Logging/LoggingService.cs | Integrated error tracking and added method to populate telemetry |
| src/Build/BackEnd/Components/Logging/ILoggingService.cs | Added PopulateBuildTelemetryWithErrors to interface |
| src/Build/BackEnd/BuildManager/BuildManager.cs | Added call to populate error telemetry on build failure |
| src/Build.UnitTests/BackEnd/MockLoggingService.cs | Added empty mock implementation of new interface method |
| src/Build.UnitTests/BackEnd/KnownTelemetry_Tests.cs | Added tests for telemetry serialization of failure data |
| src/Build.UnitTests/BackEnd/BuildTelemetryErrorCategorization_Tests.cs | New comprehensive test suite for error categorization |
| documentation/wiki/CollectedTelemetry.md | Added documentation for primary failure category property |
src/Build/BackEnd/Components/Logging/BuildErrorTelemetryTracker.cs
Outdated
Show resolved
Hide resolved
src/Build/BackEnd/Components/Logging/BuildErrorTelemetryTracker.cs
Outdated
Show resolved
Hide resolved
…r.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…r.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
src/Build/BackEnd/Components/Logging/BuildErrorTelemetryTracker.cs
Outdated
Show resolved
Hide resolved
src/Build/BackEnd/Components/Logging/BuildErrorTelemetryTracker.cs
Outdated
Show resolved
Hide resolved
- Replaced locks with Interlocked.Increment for thread-safe error tracking - Added namespacing to error count properties (errorCounts.compiler, etc.) for better Kusto query ergonomics - Updated tests to use namespaced property names Co-authored-by: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com>
Split SDK category into two separate categories: - SDKResolvers: MSB4236 (SDK resolution errors) - NETSDK: NETSDK* (.NET SDK diagnostics) Updated BuildTelemetry properties and tests accordingly. Co-authored-by: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com>
Updated [Microsoft.Build](https://github.com/dotnet/msbuild) from 18.3.3 to 18.4.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.4.0 ## What's Changed * Fix terminal logger quiet mode to show project context for warnings/errors by @Copilot in dotnet/msbuild#12930 * Replace OpenTelemetry with Microsoft.VisualStudio.Telemetry for VS by @YuliiaKovalova in dotnet/msbuild#12843 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13050856 by @dotnet-bot in dotnet/msbuild#12982 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#12979 * eliminate test data serialization warnings by @JanProvaznik in dotnet/msbuild#12983 * Add the feature flag that allows users to opt out automatic UTF8 console encoding by @GangWang01 in dotnet/msbuild#12637 * Polyfill clean up and source package organization by @DustinCampbell in dotnet/msbuild#12977 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13052367 by @dotnet-bot in dotnet/msbuild#12984 * Add documentation for enabling binlog collection via env var by @YuliiaKovalova in dotnet/msbuild#12805 * Support multiple binary logs from command line arguments by @Copilot in dotnet/msbuild#12706 * Add VcxprojReader.exe to ngenApplications by @YuliiaKovalova in dotnet/msbuild#12986 * Add HostServices support in Out-of-Process Task Host by @YuliiaKovalova in dotnet/msbuild#12753 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#13002 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13000 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13078382 by @dotnet-bot in dotnet/msbuild#13003 * Add telemetry tracking for task factory names and runtime usage by @Copilot in dotnet/msbuild#12989 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#12987 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13079827 by @dotnet-bot in dotnet/msbuild#13010 * Snap for VS 18.3 and update branding to VS 18.4 by @Copilot in dotnet/msbuild#13005 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#13012 * Add telemetry to categorize build failure reasons by @Copilot in dotnet/msbuild#13007 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in dotnet/msbuild#13011 * Update OptProf drop metadata configuration by @YuliiaKovalova in dotnet/msbuild#13020 * Fix MSB1025 error when using DistributedFileLogger (-dfl flag) by @Copilot in dotnet/msbuild#13036 * CmdLine parsing was extracted from XMake and the implementation is visible to dotnet (attempt 2) by @MichalPavlik in dotnet/msbuild#12836 * Make task environment path absolutization not throw. by @AR-May in dotnet/msbuild#13035 * Fix flaky test TestTerminalLoggerTogetherWithOtherLoggers by @Copilot in dotnet/msbuild#13044 * Enlighten more tasks that require no change by @AR-May in dotnet/msbuild#13045 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#13050 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13048 * Add support for MSBUILD_LOGGING_ARGS by @YuliiaKovalova in dotnet/msbuild#12993 * Fix MSBuildEventSource by @dfederm in dotnet/msbuild#13030 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13124182 by @dotnet-bot in dotnet/msbuild#13053 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#13031 * Add incrementality tracking support and more detailed analysis of the build errors reported by @YuliiaKovalova in dotnet/msbuild#13057 * [automated] Merge branch 'vs18.3' => 'main' by @github-actions[bot] in dotnet/msbuild#13055 * Enable com support for clr4 in task host by @YuliiaKovalova in dotnet/msbuild#13033 * Add 'rel/d18.3' to insertion target branch options by @ViktorHofer in dotnet/msbuild#13067 * add OriginalValue property to AbsolutePath by @JanProvaznik in dotnet/msbuild#13077 * [automated] Merge branch 'vs18.3' => 'main' by @github-actions[bot] in dotnet/msbuild#13074 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13137486 by @dotnet-bot in dotnet/msbuild#13075 * Refactor FileUtilities.cs and add methods for absolute paths. by @AR-May in dotnet/msbuild#13079 * Limit extended flag usage to NET and CLR4 runtimes by @YuliiaKovalova in dotnet/msbuild#13080 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in dotnet/msbuild#13065 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13137926 by @dotnet-bot in dotnet/msbuild#13081 * Update to 10.0.1 references by @rainersigwald in dotnet/msbuild#13072 * Undo COM support in out of proc task host CLR4 by @YuliiaKovalova in dotnet/msbuild#13089 * Add Managed Identity for bootstrapper creation by @rainersigwald in dotnet/msbuild#13092 * Add warning MSB4280 when DOTNET_HOST_PATH is set to a directory by @Copilot in dotnet/msbuild#13091 ... (truncated) Commits viewable in [compare view](dotnet/msbuild@v18.3.3...v18.4.0). </details> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updated [Microsoft.Build.Framework](https://github.com/dotnet/msbuild) from 18.3.3 to 18.4.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Framework's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.4.0 ## What's Changed * Fix terminal logger quiet mode to show project context for warnings/errors by @Copilot in dotnet/msbuild#12930 * Replace OpenTelemetry with Microsoft.VisualStudio.Telemetry for VS by @YuliiaKovalova in dotnet/msbuild#12843 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13050856 by @dotnet-bot in dotnet/msbuild#12982 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#12979 * eliminate test data serialization warnings by @JanProvaznik in dotnet/msbuild#12983 * Add the feature flag that allows users to opt out automatic UTF8 console encoding by @GangWang01 in dotnet/msbuild#12637 * Polyfill clean up and source package organization by @DustinCampbell in dotnet/msbuild#12977 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13052367 by @dotnet-bot in dotnet/msbuild#12984 * Add documentation for enabling binlog collection via env var by @YuliiaKovalova in dotnet/msbuild#12805 * Support multiple binary logs from command line arguments by @Copilot in dotnet/msbuild#12706 * Add VcxprojReader.exe to ngenApplications by @YuliiaKovalova in dotnet/msbuild#12986 * Add HostServices support in Out-of-Process Task Host by @YuliiaKovalova in dotnet/msbuild#12753 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#13002 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13000 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13078382 by @dotnet-bot in dotnet/msbuild#13003 * Add telemetry tracking for task factory names and runtime usage by @Copilot in dotnet/msbuild#12989 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#12987 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13079827 by @dotnet-bot in dotnet/msbuild#13010 * Snap for VS 18.3 and update branding to VS 18.4 by @Copilot in dotnet/msbuild#13005 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#13012 * Add telemetry to categorize build failure reasons by @Copilot in dotnet/msbuild#13007 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in dotnet/msbuild#13011 * Update OptProf drop metadata configuration by @YuliiaKovalova in dotnet/msbuild#13020 * Fix MSB1025 error when using DistributedFileLogger (-dfl flag) by @Copilot in dotnet/msbuild#13036 * CmdLine parsing was extracted from XMake and the implementation is visible to dotnet (attempt 2) by @MichalPavlik in dotnet/msbuild#12836 * Make task environment path absolutization not throw. by @AR-May in dotnet/msbuild#13035 * Fix flaky test TestTerminalLoggerTogetherWithOtherLoggers by @Copilot in dotnet/msbuild#13044 * Enlighten more tasks that require no change by @AR-May in dotnet/msbuild#13045 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#13050 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13048 * Add support for MSBUILD_LOGGING_ARGS by @YuliiaKovalova in dotnet/msbuild#12993 * Fix MSBuildEventSource by @dfederm in dotnet/msbuild#13030 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13124182 by @dotnet-bot in dotnet/msbuild#13053 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#13031 * Add incrementality tracking support and more detailed analysis of the build errors reported by @YuliiaKovalova in dotnet/msbuild#13057 * [automated] Merge branch 'vs18.3' => 'main' by @github-actions[bot] in dotnet/msbuild#13055 * Enable com support for clr4 in task host by @YuliiaKovalova in dotnet/msbuild#13033 * Add 'rel/d18.3' to insertion target branch options by @ViktorHofer in dotnet/msbuild#13067 * add OriginalValue property to AbsolutePath by @JanProvaznik in dotnet/msbuild#13077 * [automated] Merge branch 'vs18.3' => 'main' by @github-actions[bot] in dotnet/msbuild#13074 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13137486 by @dotnet-bot in dotnet/msbuild#13075 * Refactor FileUtilities.cs and add methods for absolute paths. by @AR-May in dotnet/msbuild#13079 * Limit extended flag usage to NET and CLR4 runtimes by @YuliiaKovalova in dotnet/msbuild#13080 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in dotnet/msbuild#13065 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13137926 by @dotnet-bot in dotnet/msbuild#13081 * Update to 10.0.1 references by @rainersigwald in dotnet/msbuild#13072 * Undo COM support in out of proc task host CLR4 by @YuliiaKovalova in dotnet/msbuild#13089 * Add Managed Identity for bootstrapper creation by @rainersigwald in dotnet/msbuild#13092 * Add warning MSB4280 when DOTNET_HOST_PATH is set to a directory by @Copilot in dotnet/msbuild#13091 ... (truncated) Commits viewable in [compare view](dotnet/msbuild@v18.3.3...v18.4.0). </details> Updated [Microsoft.Build.Utilities.Core](https://github.com/dotnet/msbuild) from 18.3.3 to 18.4.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Utilities.Core's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.4.0 ## What's Changed * Fix terminal logger quiet mode to show project context for warnings/errors by @Copilot in dotnet/msbuild#12930 * Replace OpenTelemetry with Microsoft.VisualStudio.Telemetry for VS by @YuliiaKovalova in dotnet/msbuild#12843 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13050856 by @dotnet-bot in dotnet/msbuild#12982 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#12979 * eliminate test data serialization warnings by @JanProvaznik in dotnet/msbuild#12983 * Add the feature flag that allows users to opt out automatic UTF8 console encoding by @GangWang01 in dotnet/msbuild#12637 * Polyfill clean up and source package organization by @DustinCampbell in dotnet/msbuild#12977 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13052367 by @dotnet-bot in dotnet/msbuild#12984 * Add documentation for enabling binlog collection via env var by @YuliiaKovalova in dotnet/msbuild#12805 * Support multiple binary logs from command line arguments by @Copilot in dotnet/msbuild#12706 * Add VcxprojReader.exe to ngenApplications by @YuliiaKovalova in dotnet/msbuild#12986 * Add HostServices support in Out-of-Process Task Host by @YuliiaKovalova in dotnet/msbuild#12753 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#13002 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13000 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13078382 by @dotnet-bot in dotnet/msbuild#13003 * Add telemetry tracking for task factory names and runtime usage by @Copilot in dotnet/msbuild#12989 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#12987 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13079827 by @dotnet-bot in dotnet/msbuild#13010 * Snap for VS 18.3 and update branding to VS 18.4 by @Copilot in dotnet/msbuild#13005 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#13012 * Add telemetry to categorize build failure reasons by @Copilot in dotnet/msbuild#13007 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in dotnet/msbuild#13011 * Update OptProf drop metadata configuration by @YuliiaKovalova in dotnet/msbuild#13020 * Fix MSB1025 error when using DistributedFileLogger (-dfl flag) by @Copilot in dotnet/msbuild#13036 * CmdLine parsing was extracted from XMake and the implementation is visible to dotnet (attempt 2) by @MichalPavlik in dotnet/msbuild#12836 * Make task environment path absolutization not throw. by @AR-May in dotnet/msbuild#13035 * Fix flaky test TestTerminalLoggerTogetherWithOtherLoggers by @Copilot in dotnet/msbuild#13044 * Enlighten more tasks that require no change by @AR-May in dotnet/msbuild#13045 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#13050 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13048 * Add support for MSBUILD_LOGGING_ARGS by @YuliiaKovalova in dotnet/msbuild#12993 * Fix MSBuildEventSource by @dfederm in dotnet/msbuild#13030 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13124182 by @dotnet-bot in dotnet/msbuild#13053 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#13031 * Add incrementality tracking support and more detailed analysis of the build errors reported by @YuliiaKovalova in dotnet/msbuild#13057 * [automated] Merge branch 'vs18.3' => 'main' by @github-actions[bot] in dotnet/msbuild#13055 * Enable com support for clr4 in task host by @YuliiaKovalova in dotnet/msbuild#13033 * Add 'rel/d18.3' to insertion target branch options by @ViktorHofer in dotnet/msbuild#13067 * add OriginalValue property to AbsolutePath by @JanProvaznik in dotnet/msbuild#13077 * [automated] Merge branch 'vs18.3' => 'main' by @github-actions[bot] in dotnet/msbuild#13074 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13137486 by @dotnet-bot in dotnet/msbuild#13075 * Refactor FileUtilities.cs and add methods for absolute paths. by @AR-May in dotnet/msbuild#13079 * Limit extended flag usage to NET and CLR4 runtimes by @YuliiaKovalova in dotnet/msbuild#13080 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in dotnet/msbuild#13065 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13137926 by @dotnet-bot in dotnet/msbuild#13081 * Update to 10.0.1 references by @rainersigwald in dotnet/msbuild#13072 * Undo COM support in out of proc task host CLR4 by @YuliiaKovalova in dotnet/msbuild#13089 * Add Managed Identity for bootstrapper creation by @rainersigwald in dotnet/msbuild#13092 * Add warning MSB4280 when DOTNET_HOST_PATH is set to a directory by @Copilot in dotnet/msbuild#13091 ... (truncated) Commits viewable in [compare view](dotnet/msbuild@v18.3.3...v18.4.0). </details> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Work item (Internal use):
Summary
MSBuild telemetry tracks build success/failure but lacks granularity on why builds fail. This adds error categorization to enable failure pattern analysis.
Changes:
FailureCategory(primary) and error count properties per categoryData available in both VS telemetry (
GetActivityProperties) and SDK aggregated telemetry (GetProperties). Error count properties use namespaced keys (e.g.,errorCounts.compiler,errorCounts.netsdk) for better Kusto query ergonomics, enabling easy bucketing of all error counts together.Customer Impact
Enables data-driven prioritization of failure root causes. Telemetry consumers can identify which error categories affect users most frequently. The distinction between SDK resolvers and .NET SDK diagnostics provides more actionable insights for SDK-related failures. Namespaced property keys improve query performance and usability in telemetry analysis tools.
Regression?
New properties are only populated when builds fail. No changes to success path or existing telemetry data. Telemetry logic is isolated in a dedicated tracker class for better maintainability. Lock-free implementation using Interlocked operations ensures thread safety without blocking message processing.
Testing
Risk
Low. Additive telemetry change with no impact on build behavior or existing telemetry schema. Refactoring to dedicated tracker class with lock-free Interlocked operations improves both code maintainability and performance. Property namespacing is backward-compatible as it only affects the property keys in the telemetry dictionary, not the underlying data structure.
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.