private_metrics.py 1001 Bytes
from fastapi import APIRouter, Query

from presupuestov1 import metrics


WINDOW_MINUTES_MAX = 7 * 24 * 60

router = APIRouter(
	prefix='/_metrics',
	include_in_schema=False,
)


###############################################################################
# GET
###############################################################################

@router.get('/summary')
async def fetch_metrics_summary(
	minutes: int = Query(default=60, ge=1, le=WINDOW_MINUTES_MAX),
	include_ts: bool = Query(default=False),
):
	return await metrics.read_summary(minutes, include_ts)


@router.get('/routes')
async def fetch_metrics_routes(
	minutes: int = Query(default=60, ge=1, le=WINDOW_MINUTES_MAX),
	include_ts: bool = Query(default=False),
):
	return await metrics.read_routes(minutes, include_ts)


@router.get('/ips')
async def fetch_metrics_ips(
	minutes: int = Query(default=60, ge=1, le=WINDOW_MINUTES_MAX),
	include_ts: bool = Query(default=False),
):
	return await metrics.read_ips(minutes, include_ts)