router
router copied to clipboard
support Apollo-Expose-Query-Plan: dry-run
to fetch the query plan without actually executing the operation
Checklist
Complete the checklist (and note appropriate exceptions) before the PR is marked ready-for-review.
- [ ] Changes are compatible[^1]
- [ ] Documentation[^2] completed
- [ ] Performance impact assessed and acceptable
- Tests added and passing[^3]
- [x] Unit Tests
- [ ] Integration Tests
- [ ] Manual Tests
Exceptions
Note any exceptions here
Notes
[^1]: 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. [^2]: Configuration is an important part of many changes. Where applicable please try to document configuration examples. [^3]: Tick whichever testing boxes are applicable. If you are adding Manual Tests, please document the manual testing (extensively) in the Exceptions.
@lennyburdette, please consider creating a changeset entry in /.changesets/. These instructions describe the process and tooling.
CI performance tests
- [x] const - Basic stress test that runs with a constant number of users
- [ ] demand-control-instrumented - A copy of the step test, but with demand control monitoring and metrics enabled
- [ ] demand-control-uninstrumented - A copy of the step test, but with demand control monitoring enabled
- [ ] enhanced-signature - Enhanced signature enabled
- [ ] events - Stress test for events with a lot of users and deduplication ENABLED
- [ ] events_big_cap_high_rate - Stress test for events with a lot of users, deduplication enabled and high rate event with a big queue capacity
- [ ] events_big_cap_high_rate_callback - Stress test for events with a lot of users, deduplication enabled and high rate event with a big queue capacity using callback mode
- [ ] events_callback - Stress test for events with a lot of users and deduplication ENABLED in callback mode
- [ ] events_without_dedup - Stress test for events with a lot of users and deduplication DISABLED
- [ ] events_without_dedup_callback - Stress test for events with a lot of users and deduplication DISABLED using callback mode
- [ ] extended-reference-mode - Extended reference mode enabled
- [ ] large-request - Stress test with a 1 MB request payload
- [ ] no-tracing - Basic stress test, no tracing
- [ ] reload - Reload test over a long period of time at a constant rate of users
- [ ] step-jemalloc-tuning - Clone of the basic stress test for jemalloc tuning
- [ ] step-local-metrics - Field stats that are generated from the router rather than FTV1
- [ ] step-with-prometheus - A copy of the step test with the Prometheus metrics exporter enabled
- [x] step - Basic stress test that steps up the number of users over time
- [ ] xlarge-request - Stress test with 10 MB request payload
- [ ] xxlarge-request - Stress test with 100 MB request payload
whoa, updating the testing artifacts added a bunch of folks as reviewers; I'm still figuring out how to work in the router repo, so ignore this pr for now (making it a draft again)
do you know why the docs commits ended up in this branch?
@lennyburdette: mmm, rebased, but not sure why there are mdx changes in the diff (unless you added them before?)
if i did, i didn't intend too. maybe rebase -i and remove those commits? they're all associated with merged pull requests
when I return to this branch, I'll track down what happened; I'll rebase them away if they're not from you, otherwise I'll just keep rebasing via the github UI and deal with it soonish
@aaronArinder Is this ready to be merged? (rebasing discussed above all done?). The commits still look a bit odd in terms of "what would be squashed"
@abernix: I haven't had time to rebase, and I still need to get some changes sorted/pushed (filtering what we send back--have something in the right direction, but it's not complete yet). I'm hoping to return to it next week or the week after. If we need to get it in for whatever reason, it's experimental and I can just follow-up with the filtering stuff
@aaronArinder Just putting the feelers out on this again. Understand if you can't do any further re-factoring, but could you rebase?
Ping on this again. This has been a request that has come up a few times. 😄
What is the difference at the end of day from Dry-Run to Mock mode?
Does this return an error to clients?
Completed via #6670.