refactor(app/inbound): consolidate route label encoding#4198
Merged
Conversation
in #4180, we noted during review that encoding prometheus labels for route and parent metadata entails a slightly unfortunate amount of repetitive boilerplate. in the outbound proxy, we define a local `RouteLabels` type that implements the `EncodeLabelSet` and `EncodeLabelSetMut`, which we use to integrate label sets with the `prometheus_client` SDK. this commit introduces an equivalent pattern to the inbound proxy. a `RouteLabels` newtype wrapper over the shared `linkerd_app_core` structure is introduced, which in turn simplifies the `EncodeLabelSet` and `EncodeLabelSetMut` implementations of the `RequestCountLabels`, `ResponseBodyDataLabels`, and `RequestBodyDataLabels` types. Signed-off-by: katelyn martin <kate@buoyant.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
in #4180, we noted during review that encoding
prometheus labels for route and parent metadata entails a slightly
unfortunate amount of repetitive boilerplate.
in the outbound proxy, we define a local
RouteLabelstype thatimplements the
EncodeLabelSetandEncodeLabelSetMut, which we use tointegrate label sets with the
prometheus_clientSDK.this commit introduces an equivalent pattern to the inbound proxy. a
RouteLabelsnewtype wrapper over the sharedlinkerd_app_corestructure is introduced, which in turn simplifies the
EncodeLabelSetand
EncodeLabelSetMutimplementations of theRequestCountLabels,ResponseBodyDataLabels, andRequestBodyDataLabelstypes.Signed-off-by: katelyn martin kate@buoyant.io