diff --git a/dashboards/admin-web/src/app/(dashboard)/ops/page.tsx b/dashboards/admin-web/src/app/(dashboard)/ops/page.tsx index 67a10503..c582fad2 100644 --- a/dashboards/admin-web/src/app/(dashboard)/ops/page.tsx +++ b/dashboards/admin-web/src/app/(dashboard)/ops/page.tsx @@ -1,7 +1,7 @@ 'use client'; import { useEffect, useState } from 'react'; -import { Activity, CheckCircle, RefreshCw, ShieldAlert } from 'lucide-react'; +import { Activity, CheckCircle, ExternalLink, RefreshCw, ShieldAlert } from 'lucide-react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; @@ -35,6 +35,15 @@ interface OpsStatus { services: ServiceCheck[]; } +const OPS_LINKS = [ + { label: 'Grafana', href: 'http://127.0.0.1:3000' }, + { label: 'Prometheus', href: 'http://127.0.0.1:9090' }, + { label: 'Loki Ready', href: 'http://127.0.0.1:3100/ready' }, + { label: 'Admin Health', href: 'http://127.0.0.1:3001/api/health' }, + { label: 'Tracker Health', href: 'http://127.0.0.1:3003/api/health' }, + { label: 'API Gateway Health', href: 'https://api.bytelyst.com/platform/health' }, +]; + export default function OpsPage() { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); @@ -127,6 +136,27 @@ export default function OpsPage() { )} + + + Ops Links + Direct entry points for internal monitoring and health review. + + + {OPS_LINKS.map(link => ( + + {link.label} + + + ))} + + + {/* Service Grid */}
{data?.services.map(svc => (