-
Notifications
You must be signed in to change notification settings - Fork 16
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
UrlBuilder supports adding multiple path segments at once #2016
Conversation
Generate changelog in
|
Meter meter = metrics.deprecations(endpoint.serviceName()); | ||
|
||
// lazily create meter metric name only if deprecated endpoint is accessed | ||
Supplier<Meter> meterSupplier = Suppliers.memoize(() -> metrics.deprecations(endpoint.serviceName())); |
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 imagine this came up with something that used sticky sessions? iirc each sticky session client re-creates endpointchannel instances, which is why we memoize some other metrics.
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.
yep, I saw this on some of the major clients that use sticky sessions
@@ -80,7 +80,7 @@ public void fill(ListMultimap<String, String> parameters, UrlBuilder url) { | |||
if (segment.fixed != null) { | |||
url.pathSegment(segment.fixed); | |||
} else { | |||
parameters.get(segment.variable).forEach(url::pathSegment); | |||
url.pathSegments(parameters.get(segment.variable)); |
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.
👍
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.
thanks!
Released 3.92.0 |
Before this PR
For high volume services, adding the URL path segments can trigger reallocations as the list resizes.
Calls to non-deprecated endpoints incurred the cost of creating the deprecation metric name.
After this PR
==COMMIT_MSG==
UrlBuilder supports adding multiple path segments at once.
Deprecation metric is only created when a deprecated endpoint is invoked.
==COMMIT_MSG==
Possible downsides?