-
Notifications
You must be signed in to change notification settings - Fork 2k
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
[2.0] Switch apollo-engine-reporting to use fetch instead of the Node request module #1274
Conversation
@martijnwalraven Thank you so much! Super excited to get edge fully supported |
We do craft these messages to be useful, so we want them in your logs! This regressed in #1274.
console.log(`Engine report: status ${response.statusCode}`); | ||
|
||
if (response.status >= 500 && response.status < 600) { | ||
throw new Error(`${response.status}: ${response.statusText}`); |
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 assume this change from body to statusText (which leaves out the response body which we do craft in the server to be read by humans in logs) was unintentional. See #3218.
}); | ||
}, | ||
{ | ||
retries: this.options.maxAttempts || 5, |
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 assume this change which passes a "max attempts" (inclusive of first attempt) number to a "retries" (exclusive of first attempt) parameter was unintentional. See #3218.
- The behavior of maxAttempts previously failed to match its documentation or the literal reading of its name. Previously, setting maxAttempts=1 would actually result in one retry after the initial attempt. This change fixes the behavior to match the docs and the name. - We intend the bodies of Engine report endpoint errors to be useful in error logs, even 5xx errors. This change returns to including them in the reported error. PR #1274 (merged before the initial release of apollo-engine-reporting) regressed both of these issues.
- The behavior of maxAttempts previously failed to match its documentation or the literal reading of its name. Previously, setting maxAttempts=1 would actually result in one retry after the initial attempt. This change fixes the behavior to match the docs and the name. - We intend the bodies of Engine report endpoint errors to be useful in error logs, even 5xx errors. This change returns to including them in the reported error. PR #1274 (merged before the initial release of apollo-engine-reporting) regressed both of these issues.
In preparation for running on non-Node environments like Cloudflare Workers and fly.io, this removes the dependency on the Node request module and replaces its use with fetch.
There is work remaining to remove other dependencies, like gzip and the os module, but this is a first step.