@@ -99,6 +99,9 @@ def _build_meter_provider(resource: Resource) -> MeterProvider:
|
||||
View(
|
||||
instrument_name="webui.users.active",
|
||||
),
|
||||
View(
|
||||
instrument_name="webui.users.active.today",
|
||||
),
|
||||
]
|
||||
|
||||
provider = MeterProvider(
|
||||
@@ -159,6 +162,18 @@ def setup_metrics(app: FastAPI, resource: Resource) -> None:
|
||||
callbacks=[observe_active_users],
|
||||
)
|
||||
|
||||
def observe_users_active_today(
|
||||
options: metrics.CallbackOptions,
|
||||
) -> Sequence[metrics.Observation]:
|
||||
return [metrics.Observation(value=Users.get_num_users_active_today())]
|
||||
|
||||
meter.create_observable_gauge(
|
||||
name="webui.users.active.today",
|
||||
description="Number of users active since midnight today",
|
||||
unit="users",
|
||||
callbacks=[observe_users_active_today],
|
||||
)
|
||||
|
||||
# FastAPI middleware
|
||||
@app.middleware("http")
|
||||
async def _metrics_middleware(request: Request, call_next):
|
||||
|
||||
Reference in New Issue
Block a user