Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { useState, useEffect, useRef } from 'react'

// Auth: nginx injects Authorization header for all /api/ requests (see nginx.conf).

const POLL_INTERVAL = 5000

export function useGPUDetailed() {
Expand Down
Loading