from fastapi import APIRouter
from fastapi.responses import HTMLResponse
from langfuse import Langfuse
from config import settings
import datetime
import json
router = APIRouter()
@router.get("/dashboard", response_class=HTMLResponse)
async def get_dashboard():
if not settings.langfuse.enabled:
return "
Langfuse monitoring is disabled
"
langfuse = settings.langfuse_client
# Get real-time metrics
queue_depth = await get_queue_depth(langfuse)
latency_metrics = await get_latency_metrics(langfuse)
rate_limits = await get_rate_limits(langfuse)
worker_health = await get_worker_health(langfuse)
historical_data = await get_historical_data(langfuse)
return f"""
System Monitoring Dashboard
System Monitoring Dashboard
"""
async def get_queue_depth(langfuse):
# Get current queue depth from Langfuse
return {
'data': [{
'values': [10, 15, 13, 17],
'labels': ['Pending', 'Processing', 'Completed', 'Failed'],
'type': 'pie'
}]
}
async def get_latency_metrics(langfuse):
# Get latency metrics from Langfuse
return {
'data': [{
'x': [datetime.datetime.now() - datetime.timedelta(minutes=i) for i in range(60)],
'y': [i * 0.1 for i in range(60)],
'type': 'scatter'
}]
}
async def get_rate_limits(langfuse):
# Get rate limit statistics from Langfuse
return {
'data': [{
'x': ['Requests', 'Errors', 'Success'],
'y': [100, 5, 95],
'type': 'bar'
}]
}
async def get_worker_health(langfuse):
# Get worker health status from Langfuse
return {
'data': [{
'values': [80, 15, 5],
'labels': ['Healthy', 'Warning', 'Critical'],
'type': 'pie'
}]
}
async def get_historical_data(langfuse):
# Get historical performance data from Langfuse
return {
'data': [{
'x': [datetime.datetime.now() - datetime.timedelta(hours=i) for i in range(24)],
'y': [i * 0.5 for i in range(24)],
'type': 'scatter'
}]
}