Mimicking `prometheus_client` code also doesn't work for me.

```python
def make_wsgi_custom():
    def health(environ, start_response):
        status = "200 OK"
        output = "Hello World!\n"
        response_headers = [
            ("Content-type", "text/plain"),
            ("Content-Length", str(len(output))),
        ]
        start_response(status, response_headers)
        return [output]

    return health


app.wsgi_app = DispatcherMiddleware(
    app.wsgi_app, {"/metrics": make_wsgi_app(), "/health": 
make_wsgi_custom()}
)
```

I think I need to use [Multiprocess Mode 
(Gunicorn)](https://github.com/prometheus/client_python#multiprocess-mode-gunicorn).
 
But it comes with many limitations.
Maybe I will put the health info (buld number) inside the `/matrics` too
On Thursday, February 25, 2021 at 12:51:56 PM UTC+7 Azzam S.A wrote:

>
> I want to add a custom `/health` path in Python prometheus_client.
> I am using Flask and Gunicorn for this.
> Unfortunately, it doesn't work. I have tried:
>
> ```python
> from flask import Flask
> from werkzeug.middleware.dispatcher import DispatcherMiddleware
> from prometheus_client import make_wsgi_app
> from prometheus_client.core import REGISTRY
> from exporter.collector import Collector
>
> REGISTRY.register(Collector())
> app = Flask(__name__)
>
> def health():
>     return {"status": "running", "build": "111"}
>
> app.wsgi_app = DispatcherMiddleware(
>     app.wsgi_app, {"/metrics": make_wsgi_app(), "/health": health()}
> )
> ```
>
> I also try to use flask `@app.route` decorator. But dosn't work too:
>
> ```python
> @app.route("/health")
> def health():
>     return {"status": "running", "build": "111"}
>
>
> app.wsgi_app = DispatcherMiddleware(
>     app.wsgi_app, {"/metrics": make_wsgi_app(), "/health": health()}
> )
>
> ```
>
> Any endpoint (even undefined such `/foo`) will produce the same content as 
> `/metrics`
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/e05ba114-c183-4b10-82ae-cb04fd129a63n%40googlegroups.com.

Reply via email to