Fix use multi process for load metrics #429
Open
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.
Hi,
I opened a pull request (#407) that was closed. I think I need to explain the problem in more detail.
The first problem is with using the
PROMETHEUS_METRICS_EXPORT_PORT
andPROMETHEUS_METRICS_EXPORT_ADDRESS
environment variables. Here is the command that starts my app:The first error we encounter is
Address already in use
because inexports.py
, line 45, the functionprometheus_client.start_http_server(port, addr=addr)
is called without checking if the port is already in use. This should be handled with atry-except
block.The second problem is when we use the
PROMETHEUS_MULTIPROC_DIR
environment variable. The functionSetupPrometheusEndpointOnPort
does not checkPROMETHEUS_MULTIPROC_DIR
and only runs this:The implementation of this part must be similar to
ExportToDjangoView
. I mistakenly forced the app to usePROMETHEUS_MULTIPROC_DIR
, but I have fixed it.Thank you for your attention. Please tell me where I am wrong about it.