mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-21 12:49:06 +00:00
server: add prometheus instrumentation
This commit is contained in:
@@ -6,8 +6,10 @@ from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.routing import APIRoute
|
||||
from fastapi_pagination import add_pagination
|
||||
from prometheus_fastapi_instrumentator import Instrumentator
|
||||
from reflector.events import subscribers_shutdown, subscribers_startup
|
||||
from reflector.logger import logger
|
||||
from reflector.metrics import metrics_init
|
||||
from reflector.settings import settings
|
||||
from reflector.views.rtc_offer import router as rtc_offer_router
|
||||
from reflector.views.transcripts import router as transcripts_router
|
||||
@@ -23,10 +25,10 @@ except ImportError:
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
for func in subscribers_startup:
|
||||
await func()
|
||||
await func(app)
|
||||
yield
|
||||
for func in subscribers_shutdown:
|
||||
await func()
|
||||
await func(app)
|
||||
|
||||
|
||||
# use sentry if available
|
||||
@@ -49,6 +51,12 @@ app.add_middleware(
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
# metrics
|
||||
instrumentator = Instrumentator(
|
||||
excluded_handlers=["/docs", "/metrics"],
|
||||
).instrument(app)
|
||||
metrics_init(app, instrumentator)
|
||||
|
||||
# register views
|
||||
app.include_router(rtc_offer_router)
|
||||
app.include_router(transcripts_router, prefix="/v1")
|
||||
|
||||
Reference in New Issue
Block a user