Properly ingest dotnetup data after data-x-migration#54051
Draft
nagilson wants to merge 32 commits intodotnet:release/dnupfrom
Draft
Properly ingest dotnetup data after data-x-migration#54051nagilson wants to merge 32 commits intodotnet:release/dnupfrom
dotnetup data after data-x-migration#54051nagilson wants to merge 32 commits intodotnet:release/dnupfrom
Conversation
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!
nagilson
commented
Apr 22, 2026
nagilson
commented
Apr 22, 2026
nagilson
commented
Apr 23, 2026
…ike download + commands
…hub.com/nagilson/sdk into nagilson-dnup-otel-migration-for-data-x
we need the acitvity to stop to get the time and properly dispose of it and the span but activity.current fails for root activities and returns null causing command spans and events to never get published. we consolidate the timing and other metadata ingestion into the event sinto 1 place here.
Activity Events cause a trace to be logged but the conventional way to send telemetry to a trace table is via a logger so this implementation uses a logger to send the data instead of creating another activity out of an existing activity and using that to publish an activity event. error information is propagated up to each parent activity exceptions tables get dropped by data x platform so we dont monitor those this also tries to ensure properties properly proagate upon the spans with the wrapper
…sts rather than some fake test exporter.
nagilson
commented
Apr 28, 2026
| { | ||
| DotnetupTelemetry.Instance.Flush(timeoutMilliseconds: 100); | ||
| DotnetupTelemetry.Instance.WriteLogIfNecessary(); | ||
| DotnetupTelemetry.Instance.Flush(timeoutMilliseconds: 5000); |
Member
Author
There was a problem hiding this comment.
do we want to call all of these? if we do, do we really want all 3 to be separate or can we make this 1 function or happen automatically upon dispose
…to reclassify the same properties on a bunch of ops
Member
Author
|
I dont think we need the error event, we can simply query for the error property on the failing event(s) |
This was referenced Apr 29, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Resolves #52785
History:
#52792 added working telemetry with an app insights board to
dotnetupbut 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: