summaryrefslogtreecommitdiffstats
path: root/fatcat_scholar/web.py
diff options
context:
space:
mode:
Diffstat (limited to 'fatcat_scholar/web.py')
-rw-r--r--fatcat_scholar/web.py29
1 files changed, 17 insertions, 12 deletions
diff --git a/fatcat_scholar/web.py b/fatcat_scholar/web.py
index f266e08..79b4f30 100644
--- a/fatcat_scholar/web.py
+++ b/fatcat_scholar/web.py
@@ -13,6 +13,7 @@ from fastapi.staticfiles import StaticFiles
from fastapi.responses import PlainTextResponse
import sentry_sdk
from sentry_sdk.integrations.asgi import SentryAsgiMiddleware
+from starlette_prometheus import metrics, PrometheusMiddleware
from fatcat_scholar.config import settings, GIT_REVISION
from fatcat_scholar.hacks import Jinja2Templates, parse_accept_lang
@@ -26,16 +27,6 @@ I18N_LANG_OPTIONS = I18N_LANG_TRANSLATIONS + [
settings.I18N_LANG_DEFAULT,
]
-# note the middleware also installed at the end of this file
-if settings.SENTRY_DSN:
- logger.info("Sentry integration enabled")
- sentry_sdk.init(
- dsn=settings.SENTRY_DSN,
- environment=settings.SCHOLAR_ENV,
- max_breadcrumbs=10,
- release=GIT_REVISION,
- )
-
class LangPrefix:
"""
@@ -261,5 +252,19 @@ async def robots_txt(response_class: Any = PlainTextResponse) -> Any:
else:
return PlainTextResponse(ROBOTS_DISALLOW)
-# add sentry middleware
-app = SentryAsgiMiddleware(app)
+
+# configure middleware
+
+if settings.SENTRY_DSN:
+ logger.info("Sentry integration enabled")
+ sentry_sdk.init(
+ dsn=settings.SENTRY_DSN,
+ environment=settings.SCHOLAR_ENV,
+ max_breadcrumbs=10,
+ release=GIT_REVISION,
+ )
+ app.add_middleware(SentryAsgiMiddleware)
+
+if settings.ENABLE_PROMETHEUS:
+ app.add_middleware(PrometheusMiddleware)
+ app.add_route("/prometheus/", metrics)