Merge pull request #36 from CHENPrime-coder/fix/all_metrics_503

refactor: 移除获取所有客户端指标的相关代码,改为按需获取单个客户端指标
This commit is contained in:
zaunist authored and GitHub committed 2025-05-13 20:27:59 +08:00
commit 63eaee80c0
5 files changed
+16 -53

No files matched your search

-15
View File
@@ -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"));
-5
View File
@@ -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<Metrics>();
}
-4
View File
@@ -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);
}
-17
View File
@@ -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: "获取所有客户端指标失败",
};
}
};
+16 -12
View File
@@ -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);