Avoid revalidating labelset keys on each metric observation #144
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.
When declaring a metric, we declare what label keys will be used for it.
At that point, we validate that those are all valid keys (symbols,
match a given regex, etc).
Then, on each observation of the metric, we validate that the keys passed
in for the labels match the ones we were originally expecting, to make
sure all of those labels were set, but no others.
We were also, at that point, validating that the keys passed in are valid.
This validation is pretty slow, and it's redundant, since keys that aren't
valid won't match the expected ones anyway, so we can just compare just
that those match. This has quite a pronounced effect on performance.