Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions dream-server/extensions/services/dashboard-api/routers/gpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
from datetime import datetime, timezone
from typing import Optional

from fastapi import APIRouter, HTTPException
from fastapi import APIRouter, Depends, HTTPException

from security import verify_api_key

from gpu import (
decode_gpu_assignment,
Expand Down Expand Up @@ -93,7 +95,7 @@ def _build_aggregate(gpus: list[IndividualGPU], backend: str) -> GPUInfo:
# Endpoints
# ============================================================================

@router.get("/api/gpu/detailed", response_model=MultiGPUStatus)
@router.get("/api/gpu/detailed", response_model=MultiGPUStatus, dependencies=[Depends(verify_api_key)])
async def gpu_detailed():
"""Per-GPU metrics with service assignment info (cached 3 s)."""
now = time.monotonic()
Expand Down Expand Up @@ -125,7 +127,7 @@ async def gpu_detailed():
return result


@router.get("/api/gpu/topology")
@router.get("/api/gpu/topology", dependencies=[Depends(verify_api_key)])
async def gpu_topology():
"""GPU topology from config/gpu-topology.json (written by installer / dream-cli). Cached 300 s."""
now = time.monotonic()
Expand All @@ -144,7 +146,7 @@ async def gpu_topology():
return topo


@router.get("/api/gpu/history")
@router.get("/api/gpu/history", dependencies=[Depends(verify_api_key)])
async def gpu_history():
"""Rolling 5-minute per-GPU metrics history sampled every 5 s."""
if not _GPU_HISTORY:
Expand Down
Loading