Ejemplo n.º 1
0
 def setup_metrics(app: Flask):
     logger.info('Setting up metrics')
     # provide app's version and deploy environment/config name to set a gauge metric
     ErrorLogger.add_logging_callback(
         MetricsHandler.log_exception_for_metrics)
     MetricsHandler.setup_metrics_callbacks(
         app, app_version=app.config['VERSION'])
     if 'prometheus_multiproc_dir' in os.environ:
         # We're in a multiprocessing environment (i.e. gunicorn)
         registry = CollectorRegistry()
         multiprocess.MultiProcessCollector(registry)
         wsgi_app = make_wsgi_app(registry)
     else:
         wsgi_app = make_wsgi_app()
     # Plug metrics WSGI app to your main app with dispatcher
     app.wsgi_app = DispatcherMiddleware(app.wsgi_app,
                                         {"/metrics": wsgi_app})
Ejemplo n.º 2
0
def api_handle_error(error: CalculatedError):
    MetricsHandler.log_exception_for_metrics(error)
    response = jsonify(error.to_dict())
    response.status_code = error.status_code
    return response