Fix memory leak in distributor due to cluster label #4739
Merged
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.
What this PR does:
The HA cluster label is exposed through the distributor metrics. This can cause memory leak when one tenant sends a lot of different clusters. The metrics is only cleaned up after 30 mins.
The memory is leaked because the
yoloString
in the request is kept alive for a longer period.The following is the memory consumed by the distributor over time without cloning the cluster label.

The following is the memory consumed by distributor when cluster label was cloned.

The above leak in

snappyDecode
appears to have disappeared.Which issue(s) this PR fixes:
Fixes #
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]