diff --git a/ui/src/pages/AgentHealth/AgentHealth.module.css b/ui/src/pages/AgentHealth/AgentHealth.module.css index 401fcd22..40b45545 100644 --- a/ui/src/pages/AgentHealth/AgentHealth.module.css +++ b/ui/src/pages/AgentHealth/AgentHealth.module.css @@ -98,6 +98,17 @@ color: var(--text-primary); } +.instanceLink { + font-weight: 600; + color: var(--amber); + cursor: pointer; +} + +.instanceLink:hover { + text-decoration: underline; + color: var(--amber-deep); +} + .instanceMeta { color: var(--text-muted); white-space: nowrap; diff --git a/ui/src/pages/AgentHealth/AgentHealth.tsx b/ui/src/pages/AgentHealth/AgentHealth.tsx index 7427cd78..8b670789 100644 --- a/ui/src/pages/AgentHealth/AgentHealth.tsx +++ b/ui/src/pages/AgentHealth/AgentHealth.tsx @@ -1,5 +1,5 @@ import { useState, useMemo } from 'react'; -import { useParams } from 'react-router'; +import { useParams, useNavigate } from 'react-router'; import { StatCard, StatusDot, Badge, MonoText, ProgressBar, GroupCard, DataTable, LineChart, EventFeed, DetailPanel, @@ -240,6 +240,7 @@ function mapLogLevel(level: string): LogEntry['level'] { export default function AgentHealth() { const { appId } = useParams(); + const navigate = useNavigate(); const { data: agents } = useAgents(undefined, appId); const [eventSortAsc, setEventSortAsc] = useState(false); const [eventRefreshTo, setEventRefreshTo] = useState(); @@ -311,7 +312,16 @@ export default function AgentHealth() { key: 'name', header: 'Instance', render: (_val, row) => ( - {row.name ?? row.id} + { + e.stopPropagation(); + navigate(`/agents/${row.application}/${row.id}`); + }} + > + {row.name ?? row.id} + ), }, {