Collecting some build data for tasks/targets telemetry #11257
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[NOTE] - I'm experimenting with alternative approach - transfering the info once per build via dedicated event args
Fixes #10946
If split into separate PRs is prefered - please indicate so in comments
Goal
Obtaining information about build composition from microsoft versus 3rd party tasks and targets.
Approach
Since the information is present in the building worker nodes - the code collects it there and then (if requested) send it via
ProjectFinishedEventArgs
(one of few event args that are being transfered regardless of connected loggers) to the main node.The classification of 3rd party versus 1st party is for simplicity being done based on location of defining msbuild project and naming of the assembly.
Changes
Performance considerations
By default the data collection logic is off and hence statistics are not collected on worker node, nor serialized to the event args. The perf impact of collection and serialization was though beyond the recognition level of basic 'full duration' testing of full and incremental build of small console and bigger size projects.