From 449ffd9cae0efe9c4ab15babaa2de624c673946e Mon Sep 17 00:00:00 2001 From: CHENPrime-coder Date: Wed, 14 May 2025 08:50:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E6=8C=87=E6=A0=87=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BC=98=E5=8C=96=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E9=A1=B5=E4=BB=A3=E7=90=86=E4=BF=A1=E6=81=AF=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/services/StatusService.ts | 12 +----------- frontend/src/pages/status/StatusPage.tsx | 10 ++++++++++ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/backend/src/services/StatusService.ts b/backend/src/services/StatusService.ts index 4ff9aca..f20231e 100644 --- a/backend/src/services/StatusService.ts +++ b/backend/src/services/StatusService.ts @@ -240,23 +240,13 @@ export async function getStatusPagePublicData(env: { DB: Bindings["DB"] }) { } } - // 获取客户端详细信息 + // 获取客户端基本信息 let agents: Agent[] = []; if (selectedAgents.results && selectedAgents.results.length > 0) { const agentIds = selectedAgents.results.map((a) => a.agent_id); if (agentIds.length > 0) { const agentsResult = await repositories.getAgentsByIds(env.DB, agentIds); - const agentsMetricsResult = - await repositories.getAgentMetricsByIds(env.DB, agentIds); - if (agentsMetricsResult.results) { - for (const agent of agentsResult.results || []) { - const agentMetrics = agentsMetricsResult.results.filter( - (m) => m.agent_id === agent.id - ); - agent.metrics = agentMetrics; - } - } if (agentsResult.results) { agents = agentsResult.results; diff --git a/frontend/src/pages/status/StatusPage.tsx b/frontend/src/pages/status/StatusPage.tsx index fba5f36..78a5b31 100644 --- a/frontend/src/pages/status/StatusPage.tsx +++ b/frontend/src/pages/status/StatusPage.tsx @@ -5,6 +5,7 @@ import AgentCard from "../../components/AgentCard"; import MonitorCard from "../../components/MonitorCard"; import { useTranslation } from "react-i18next"; import { Agent, MonitorWithDailyStatsAndStatusHistory } from "../../types"; +import { getAgentMetrics } from "../../api"; const StatusPage = () => { const { t } = useTranslation(); @@ -47,6 +48,15 @@ const StatusPage = () => { setPageDescription( response.description || t("statusPage.allOperational") ); + if (response.agents) { + // 获取每个代理的指标数据 + await Promise.all( + response.agents.map(async (agent) => { + const metrics = await getAgentMetrics(agent.id); + agent.metrics = metrics.agent || []; + }) + ); + } console.log(response); setData({ monitors: response.monitors || [],