Merge pull request #36 from CHENPrime-coder/fix/all_metrics_503
refactor: 移除获取所有客户端指标的相关代码,改为按需获取单个客户端指标
This commit is contained in:
5 files changed
+13
-50
No files matched your search
@@ -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"));
|
||||
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -475,7 +475,3 @@ 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);
|
||||
}
|
||||
@@ -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: "获取所有客户端指标失败",
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -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
|
||||
);
|
||||
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);
|
||||
|
||||
Reference in new issue
Block a user