diff --git a/backend/src/api/agents.ts b/backend/src/api/agents.ts index 8273b84..991e5c7 100644 --- a/backend/src/api/agents.ts +++ b/backend/src/api/agents.ts @@ -11,7 +11,6 @@ import { registerAgentService, updateAgentStatusService, getAgentMetrics, - getAllAgentMetrics, } from "../services/AgentService"; const agents = new Hono<{ @@ -169,20 +168,6 @@ agents.get("/:id/metrics", async (c) => { ) }) -// 获取所有客户端的指标 -agents.get("/metrics", async (c) => { - const result = await getAllAgentMetrics(c.env.DB); - return c.json( - { - success: result.success, - metrics: result.results, - message: "获取所有客户端指标成功", - }, - 200 - ) -}) - - // 获取单个客户端 agents.get("/:id", async (c) => { const agentId = Number(c.req.param("id")); diff --git a/backend/src/repositories/agent.ts b/backend/src/repositories/agent.ts index 7fd5df7..af23057 100644 --- a/backend/src/repositories/agent.ts +++ b/backend/src/repositories/agent.ts @@ -224,8 +224,3 @@ export async function getAgentMetrics(db: Bindings["DB"], agentId: number) { .bind(agentId) .all(); } - -// 获取所有客户端资源指标 -export async function getAllAgentMetrics(db: Bindings["DB"]) { - return await db.prepare("SELECT * FROM agent_metrics_24h").all(); -} diff --git a/backend/src/services/AgentService.ts b/backend/src/services/AgentService.ts index 6c82700..746648c 100644 --- a/backend/src/services/AgentService.ts +++ b/backend/src/services/AgentService.ts @@ -474,8 +474,4 @@ export async function setAgentInactive(env: any, id: number) { export async function getAgentMetrics(db: Bindings["DB"], agentId: number) { return await AgentRepository.getAgentMetrics(db, agentId); -} - -export async function getAllAgentMetrics(db: Bindings["DB"]) { - return await AgentRepository.getAllAgentMetrics(db); } \ No newline at end of file diff --git a/frontend/src/api/agents.ts b/frontend/src/api/agents.ts index d55782c..5a07feb 100644 --- a/frontend/src/api/agents.ts +++ b/frontend/src/api/agents.ts @@ -87,20 +87,3 @@ export const getAgentMetrics = async ( }; } }; - -export const getAllAgentMetrics = async (): Promise<{ - success: boolean; - metrics?: MetricHistory[]; - message?: string; -}> => { - try { - const response = await api.get(`/api/agents/metrics`); - return response.data; - } catch (error) { - console.error(`获取所有客户端的指标失败:`, error); - return { - success: false, - message: "获取所有客户端指标失败", - }; - } -}; diff --git a/frontend/src/pages/agents/AgentsList.tsx b/frontend/src/pages/agents/AgentsList.tsx index 98d1d2b..5180cd3 100644 --- a/frontend/src/pages/agents/AgentsList.tsx +++ b/frontend/src/pages/agents/AgentsList.tsx @@ -26,7 +26,7 @@ import { import { getAllAgents, deleteAgent, - getAllAgentMetrics, + getAgentMetrics, } from "../../api/agents"; import AgentCard from "../../components/AgentCard"; import { useTranslation } from "react-i18next"; @@ -68,19 +68,23 @@ const AgentsList = () => { setError(null); // 获取所有客户端 const response = await getAllAgents(); - // 获取所有客户端的指标数据 - const metricsResponse = await getAllAgentMetrics(); - if (response.agents && metricsResponse.metrics) { + if (response.agents) { // 合并指标数据到客户端数据 - const agentsWithMetrics = response.agents.map((agent) => { - const metrics = metricsResponse.metrics?.filter( - (metric) => metric.agent_id === agent.id - ); - console.log("获取到的 metrics 数据: ", metrics); - console.log("获取到的 agent 数据: ", agent); - return { ...agent, metrics }; - }); + const agentsWithMetrics = await Promise.all( + response.agents.map(async (agent) => { + // 获取指定客户端的指标数据 + const metricsResponse = await getAgentMetrics(agent.id); + if (!metricsResponse.success) { + console.error("获取指标数据失败:", metricsResponse.message); + return agent; // 返回原始客户端数据 + } + const metrics = metricsResponse.agent; + console.log("获取到的 metrics 数据: ", metrics); + console.log("获取到的 agent 数据: ", agent); + return { ...agent, metrics }; + }) + ); setAgents(agentsWithMetrics); } console.log("获取到的 agent 数据: ", response);