-
Notifications
You must be signed in to change notification settings - Fork 267
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
Telemetry enhancements #850
Conversation
✅ Deploy Preview for apollo-router-docs canceled.
|
c2567dc
to
36015f6
Compare
0680b9b
to
602506c
Compare
apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs
Outdated
Show resolved
Hide resolved
152db5b
to
fc0f735
Compare
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.
Wow what a tremendous and super thorough PR 🎉
I ve added a bunch of comments and questions here and there but this looks good to me!
2a472b5
to
d802a11
Compare
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.
Mainly looks good and a nice set of cleanup. It seems like the code around the shutting down global tracing has changed since last time I looked at it and I'm not 100% sure it is correct. It will be worth going through that before merging this.
@@ -0,0 +1,73 @@ | |||
use futures::future::BoxFuture; |
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.
After the plugin utils etc stuff merges, you'll see the minimal style of documentation that is required. You can lift some of the documentation from that PR and use it to document the new components (such as this instrument layer/service) that you are adding.
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.
I've added some minimal docs, I'm happy to revisit in a larger docs effort.
…module and metrics can go in the metrics module.
Move router_request span to telemetry plugin. There's no way to disable this plugin so it's OK. Add logic for dynamic client name and client version header.
OSX had an issue with max UDP packet size Windows has all sorts of file related issues. On the plus side the special handling for windows in circle has been removed as the root cause of the hang on windows is now known to be: rust-lang/rust#45572
…d via another thread (which we don't)
… subgraph service.
…y going to get more complicated aw we add more integration tests. Docker compose is the way to go.
Co-authored-by: Gary Pennington <gary@apollographql.com>
Moved instrumentation info span to actual query parsing. It makes no sense to have a span on a cache as the cache hit will mean no time elapsed. Users can now see a span when query parsing happens or no span if parsing did not take place.
…rk to make this test fast enough.
1bc9989
to
bf40b73
Compare
🚀 Features
Configurable client identification headers PR #850
The router uses the HTTP headers
apollographql-client-name
andapollographql-client-version
to identify clients in Studio telemetry. Thos headers can now be overriden in the configuration:🐛 Fixes
Configuration errors on hot-reload are output PR #850
If a configuration file had errors on reload these were silently swallowed. These are now added to the logs.
🛠 Maintenance
End to end integration tests for Jaeger PR #850
Jaeger tracing end to end test including client->router->subgraphs
Router tracing span cleanup PR #850
Spans generated by the Router are now aligned with plugin services.
Review Notes