Prometheus#

class gordo.server.prometheus.metrics.GordoServerPrometheusMetrics(args_labels: Iterable[Tuple[str, str]] | None = None, info: Dict[str, str] | None = None, ignore_paths: Iterable[str] | None = None, registry: CollectorRegistry | None = None)[source]#

Bases: object

Container for encapsulating all Prometheus related logic The simplest way to use with preexisting Flask application:

>>> from flask import Flask
>>> from prometheus_client.registry import CollectorRegistry
>>> app = Flask("test")
>>> @app.route('/hello')
... def hello():
...     return 'Hello, World'
>>> prometheus_metrics = GordoServerPrometheusMetrics(registry=CollectorRegistry())
>>> prometheus_metrics.prepare_app(app)
init_labels()[source]#
static main_label_values(req: Request, resp: Response)[source]#
main_labels = ('method', 'path', 'status_code')#
prefix = 'gordo_server'#
prepare_app(app: Flask)[source]#
request_label_values(req: Request, resp: Response)[source]#
gordo.server.prometheus.metrics.create_registry()[source]#
gordo.server.prometheus.metrics.current_time()[source]#
gordo.server.prometheus.metrics.to_status_code(response_status)[source]#
gordo.server.prometheus.metrics.url_rule_to_str(url_rule)[source]#
gordo.server.prometheus.server.build_app() Flask[source]#

Creating Flask application in order to serve all Prometheus metrics

Returns:

Flask

gordo.server.prometheus.gunicorn_config.child_exit(server, worker)[source]#