Repository navigation
Bound HTTP method metric labels to a fixed set - #2
Merged
Merged
Conversation
Map request methods used as Prometheus labels to the standard HTTP methods and fold everything else into "other". Truncate long method tokens in the request completion log so those fields stay bounded too. Co-authored-by: Jake Barnby <abnegate@users.noreply.github.com>
Member
Author
|
@hansi-codes review |
🟢 Tier S · Ready to merge
HTTP request metrics now normalize methods to a fixed set of standard methods plus an
📂 Walkthrough · 2
Reviewed |
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.
What does this PR do?
instrument()used the request method as a Prometheus label onexiftool_http_requests_totalandexiftool_http_request_duration_seconds. Routes are already normalized bytelemetryRoute(); methods were not, so each distinct method token created a new series.This maps the method label to the standard HTTP methods and folds anything else into
other, keeping method-label cardinality bounded. The structured request log still records the original method, truncated when it is unusually long.Test Plan
GET,POST, andother).telemetryMethodandloggedMethod.go test -race ./...,go vet ./..., andgofmton the changed files.