Release Highlights
- If NATS becomes unavailable, Gorouter no longer crashes. Instead, Gorouter now attempts to reconnect forever, and logs a periodic message that it is disconnected details
- Gorouter no longer forwards a request to an application when the secret used to decrypt the X-CF-Signature header matches the
router.route_services_secret_decrypt_only
property and therouter.route_services_timeout
has expired details - A password can now be configured for users created by Routing Acceptance Tests and Routing Smoke Tests details
- Default timeout for Gorouter idle keepalive connections is now 90 seconds details
- Gorouter no longer logs
AccessLogRecord-not-set-on-context
for requests to the healthcheck endpoint/health
details router.status.password
is now a required field androuter.status.user
now has a default detailsX-B3-SpanId
andX-B3-ParentSpanId
headers are no longer generated by Gorouter whenrouter.tracing.enable_zipkin: true
. Gorouter continues to generate theX-B3-TraceID
header whenX-B3-TraceID
andX-B3-SpanId
are not present in the request details
Known Issues
- There is a latency measurement bug whereby instead of calculating when a request was received by Gorouter and when a backend app sends the first byte of the response, we started calculating the time between when a request was received by Gorouter and when the last byte of the response was returned from Gorouter. Fix will be in v153.
Performance Comparison
Performance comparison of 0.147.0 vs 0.149.0 can be found in the attachment below. Raw results for the performance tests can be found in the following files:
Manifest Property Changes
acceptance_tests
0.147.0 | 0.149.0 | Default Value |
---|---|---|
did not exist | acceptance_tests.user_password
| |
did not exist | acceptance_tests.default_timeout
| 120 |
smoke_tests
0.147.0 | 0.149.0 | Default Value |
---|---|---|
did not exist | acceptance_tests.user_password
| |
did not exist | acceptance_tests.default_timeout
| 120 |
gorouter
- New default value is set to
router-status
forrouter.status.user
router.status.password
is now a required field