Fix duplicated (+incorrect) metrics when using multiproc environment#960
Open
RedKinda wants to merge 2 commits intoprometheus:masterfrom
Open
Fix duplicated (+incorrect) metrics when using multiproc environment#960RedKinda wants to merge 2 commits intoprometheus:masterfrom
RedKinda wants to merge 2 commits intoprometheus:masterfrom
Conversation
Signed-off-by: red <red@kalab.sk>
Signed-off-by: red <red@kalab.sk>
Member
csmarchbanks
left a comment
There was a problem hiding this comment.
Interesting, this is the reason why in examples we always create a new Collector registry that is not used for registering any metrics, e.g.
registry = CollectorRegistry()
multiprocess.MultiProcessCollector(registry)
data = generate_latest(registry)
as part of the handler.
I am trying to think if there are any valid use cases for having a second registry with a different set of metrics, but as you say, I think they will all show up in the multiprocess output so probably not.
Author
|
I was following the steps shown in the fastapi section https://github.com/prometheus/client_python/#fastapi--gunicorn which uses |
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.
Currently, when using a multiproc environment, initializing metrics registers them as collectors. This means that in
registry.py:96they report their metrics, even though they were already reported in the mmapped environment. In practice this meant dumping metrics would report some metrics twice with the same identifiers, once for the aggregated multiproc collector and once for the Histogram or other metrics used by the local process handling that specific/metricsrequest.This PR prevents Metric-s being registered into the registry as collectors by checking for presence of the two relevant env vars.