-
Notifications
You must be signed in to change notification settings - Fork 848
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
Support Open Telemetry for metrics #776
Comments
Here's a demo we can borrow and insert ourselves into: Note: the way we bypass HttpClient and go directly to SocketHttpHandler bypasses the DiagnosticsHandler and may break some of the open telemetry integration. See #292 |
Does @MihaZupan 's last comment on #292 imply that it should work? |
I think we only ported a subset of the functionality, enough to add headers, but not enough to track the outbound request as a separate child activity. |
How the users are going to consume the open telemetry? Are we going to add the rest of |
Distributed tracing works with YARP, but as Chris mentioned, we will appear as a single node (there is no separation for incoming and outgoing requests, it's seen as a single operation). Do we know what is the use-case for YARP to have a separate activity for the outgoing request? |
Having a separate activity would get you more granular timings, right? Or do you rely on the destination to start its own activity? I'd also expect a separate activity to be useful in retry scenarios. @Kahbazi I would expect to re-use the OpenTelemetry.Instrumentation.AspNetCore package. I don't know if we'll be able to re-use the http package or not. I'd prefer to re-use it if possible. |
Yes, but only slightly - in YARP the outgoing request starts at about the same time as the incoming one (there are no network delays etc. in between). Retries would be a good scenario tho.
Yes, every part of the system contributes its information.
The AspNetCore part can be reused. For Http, it could be reused if we mirror the |
There might be scenarios where there's delay between the incoming request and outgoing requests, like when there is authentication involved, or when there's a |
If the outbound request is queued, in theory there could also be a delay there while it waits for an available connection (eg H2 concurrency limit). |
ToDo: Distributed tracing & logging
Runtime work (dotnet/runtime#31261):
Future: Metrics
|
YARP could be used as part of an ASP.NET Core application, and although having matching events as |
Triage: Let's scope it to "just" Metrics (will be in .NET 6.0, hence Backlog here for YARP) -- @MihaZupan can you please file a new issue with leftovers for Logging and Telemetry we should address in YARP 1.0? |
Triage: We believe that work done in 8.0 Runtime and in Kestrel covers everything that might be needed for OpenTelemetry to work well. Closing @davidfowl did you miss anything else which you would find valuable in YARP? |
As part of being a good CNCF citizen, we need to make sure we interoperate well out of the box for Open Telemetry.
dotnet/runtime#44445
The text was updated successfully, but these errors were encountered: