-
Notifications
You must be signed in to change notification settings - Fork 807
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Guidance to avoid duplicate metrics in multiprocess #651
Conversation
@@ -504,6 +504,8 @@ To handle this the client library can be put in multiprocess mode. | |||
This comes with a number of limitations: | |||
|
|||
- Registries can not be used as normal, all instantiated metrics are exported | |||
- Registering metrics to a registry later used by a `MultiProcessCollector` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is under a section called (Gunicorn)
however this seems more generic and not tied to Gunicorn, right? I hit this issue with UWSGI.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this also begs the question of, what is the case someone does want to register a metric to a registry?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Gunicorn specification is a good point, perhaps (E.g. Gunicorn)
instead to make it clear that is an example?
There are lots of valid use cases to register a metric when in non-multiprocess mode, it just doesn't work for multi-process right now. For example, when building a custom exporter you might have one registry for internal metrics, and a second registry for the metrics coming from something being probed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
roger that
Signed-off-by: Chris Marchbanks <csmarchbanks@gmail.com>
933f763
to
6d572df
Compare
- Custom collectors do not work (e.g. cpu and memory metrics) | ||
- Info and Enum metrics do not work | ||
- The pushgateway cannot be used | ||
- Gauges cannot use the `pid` label | ||
|
||
There's several steps to getting this working: | ||
|
||
**1. Gunicorn deployment**: | ||
**1. Deployment**: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
from prometheus_client import generate_latest, CollectorRegistry, CONTENT_TYPE_LATEST | ||
from prometheus_client import generate_latest, CollectorRegistry, CONTENT_TYPE_LATEST, Counter | ||
|
||
MY_COUNTER = Counter('my_counter', 'Description of my counter') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Closes #647