-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update distributed tracing docs #23313
Conversation
We are about to announce support for OpenTelemetry .NET and there is likely to be an influx of developers reading these docs. They are already the #1 link for "distributed tracing" on bing.com so they are probably getting above average traffic/scrutiny too. - Reorganized the content into a landing page, conceptual docs, instrumentation walkthroughs and collection walkthroughs - Added some more intro and conceptual information assuming that many developers are completely new to distributed tracing and have no frame of reference. - Removed the example of doing distributed tracing with DiagnosticSource We might want to restore this in the future but hopefully it represents a niche usage scenario that we are migrating away from. Without context indicating when to use it it is likely to confuse new developers about recommended patterns. - Updated the examples to ensure they start with copy-pastable code that is fully runnable. - Added links for collecting distributed tracing instrumentation with Application Insights There are many oportunities for further improvement that we may want to triage: - Add examples and pictures of more realistic collected distributed trace information to help developers internalize why it might be useful to them. - Add a diagnostic guide showing how distributed tracing assists in resolving a realistic production issue. - Ensure the getting started guides for collection transfer smoothly to remote pages in the AppInsights and OpenTelemetry docs - There was a spot I wanted to link to supported OpenTelemetry exporters but there is no anchor that goes solely to that information. - Flesh out the instrumentation guidance to answer more questions developers may encounter such as: - naming conventions for Activity - when to use DisplayName - how to log exceptions - how to use links for batch processing systems - how to propagate IDs to and from network protocols - how to migrate pre-existing Activity instrumentation to use ActivitySource - Add performance analysis and guidance to reassure developers that Activity instrumentation + OpenTelemetry are serious about high performance workloads. - Discuss more conceptual topics and/or go into greater depth about some areas: - Hierarchical vs. W3C ID. - Format of a W3C ID - Describe sampling options in ActivityListener - Explain why some activities are uncapturable with ActivityListener and require workarounds with DiagnosticListener. - Roadmap for handling issues around custom propagators, supporting protocol updates, and suppressing undesired automatic Activity creation
Please take a look @sywhang @shirhatti @tarekgh @cijothomas @reyang |
Is there a way to see a preview of what this change would look like on docs.microsoft.com without having merged it? |
@carlossanlop do you know the answer of @noahfalk question |
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
|
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@noahfalk Can you also add the new pages you added as links in docs/core/diagnostics/logging-tracing.md, and docs/fundamentals/toc.yml?
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Show resolved
Hide resolved
I'll still keep them both and add ta section at the beginning to point to new guidance. |
e71e998
to
b5bcddc
Compare
b5bcddc
to
a83e344
Compare
@tarekgh Seems to be similar to the one in dotnet-api-docs: In the CI section, click on "Show all checks" to expand the CI legs. There's one called The "Validated files" table (first one) is the one you care about: click on Preview for each link. Or, click on just one, and look at the preview of your new pages, and navigate to the other pages from that one (the links should work). By the way, the Hope that helped! |
@sywhang I've added entries to the toc and updated the text in logging-tracing.md but stopped short of adding all the links to logging-tracing.md. It wasn't clear that there was much value in duplicating all the links from distributed-tracing.md into logging-tracing.md if that means we now have to keep both pages in sync and they are replicas of each other. I am guessing that anyone interested in distributed tracing will click through from logging-tracing.md -> distributed-tracing.md -> the specific page they wanted. If you see any sign that people aren't finding the info they want because links aren't there I'm glad to change it. |
Refer activity guide to the official docs dotnet/docs#23313 is bringing more enhancements shortly
Agreed. DiagnosticSource is mostly not about distributed tracing so I only updated the Activity Guide: |
Thanks for all the great feedback all! I've addressed almost everything but there are a few that it is unclear how to best address. Let me know if you are happy with the current state of the PR or you think we need to make more changes before checking in. If I don't hear anything today I'll assume it is OK to merge and we can address lingering issues with specific follow up PRs. Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - if there is no other suggestions by EOD I'll go ahead and merge this. Thanks everyone!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent write-up!
Left few small comments.
Only strong recommendation is to avoid using the "logging" term in tracing doc.
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-collection-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Outdated
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Show resolved
Hide resolved
docs/core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md
Show resolved
Hide resolved
Refer activity guide to the official docs dotnet/docs#23313 is bringing more enhancements shortly
We are about to announce support for OpenTelemetry .NET and there is
likely to be an influx of developers reading these docs. They are
already the #1 link for "distributed tracing" on bing.com so they are
probably getting above average traffic/scrutiny too.
instrumentation walkthroughs and collection walkthroughs
developers are completely new to distributed tracing and have no
frame of reference.
We might want to restore this in the future but hopefully it represents
a niche usage scenario that we are migrating away from. Without context
indicating when to use it it is likely to confuse new developers about
recommended patterns.
that is fully runnable.
Application Insights
There are many oportunities for further improvement that we may
want to triage:
trace information to help developers internalize why it might be useful
to them.
resolving a realistic production issue.
remote pages in the AppInsights and OpenTelemetry docs
exporters but there is no anchor that goes solely to that
information.
developers may encounter such as:
ActivitySource
Activity instrumentation + OpenTelemetry are serious about high
performance workloads.
some areas:
and require workarounds with DiagnosticListener.
protocol updates, and suppressing undesired automatic Activity creation