-
Notifications
You must be signed in to change notification settings - Fork 275
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
Connector request service and mapping problem selectors #6514
base: next
Are you sure you want to change the base?
Conversation
✅ Docs preview has no changesThe preview was not built because there were no changes. Build ID: 1d47657cb547d8dafd21dad4 |
CI performance tests
|
476883d
to
bf8cd27
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.
I think we need to setup a sync up meeting to bring this in line with the back-pressure changes we are making to the router for 2.0.
I don't think it's a huge amount of work, but talking through the required changes and answering questions about why the changes are important will help us make faster progress.
This reverts commit a353e04.
apollo-router/src/plugins/telemetry/config_new/connector/selectors.rs
Outdated
Show resolved
Hide resolved
Merge ProtectionsYour pull request matches the following merge protections and will not be merged until they are valid. 🟠 ❄️ Ensure queue is not active [Scheduled Freeze]Waiting for scheduled freeze to end.A freeze on the repository is scheduled for the following reason: Ensure queue is not active
|
Initial implementation of a Connector Request Service, which handles individual requests to an Apollo Connector.
The
Request
andResponse
types for this new service contain information about the Connector, as well as how the request or response was mapped, including any mapping problems.The Connector Service makes one or more calls to the Connector Request Service, and the Connector Request Service in turn makes one call to the underlying connector transport, currently HTTP through the HTTP Client Service.
The transport details are separated out into separate
TransportRequest
andTransportResponse
enum variants. Currently, there is only anHttp
variant, but this allows for easily expanding to more transport variants in the future without modifying theRequest
andResponse
types.The Connector Request Service contributes a
connector_request_service
method to thePluginPrivate
trait. This method is implemented by the telemetry and authentication plugins.New selectors are added to the telemetry plugin to allow selection of mapping problems from the request and response.
Existing connectors selectors have been re-implemented at the
connector_request_service
level. This resolves an issue where using the HTTP response selectors would previously cause the data for the last HTTP response to be added to theconnect
span. The response data will now correctly be added to eachconnect_request
span.Standard events are now emitted correctly and contain the
http.request.body
(for request events) andhttp.response.body
(for response events).Checklist
Complete the checklist (and note appropriate exceptions) before the PR is marked ready-for-review.
Exceptions
Note any exceptions here
Notes
Footnotes
It may be appropriate to bring upcoming changes to the attention of other (impacted) groups. Please endeavour to do this before seeking PR approval. The mechanism for doing this will vary considerably, so use your judgement as to how and when to do this. ↩
Configuration is an important part of many changes. Where applicable please try to document configuration examples. ↩
Tick whichever testing boxes are applicable. If you are adding Manual Tests, please document the manual testing (extensively) in the Exceptions. ↩