From e6bb852937aa39e8a573e8b713ff967572548678 Mon Sep 17 00:00:00 2001 From: andersonid Date: Mon, 29 Sep 2025 13:09:01 -0300 Subject: [PATCH] Fix: Correct namespace historical analysis function to use cluster status API --- app/static/index.html | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/app/static/index.html b/app/static/index.html index e87bfd6..f60a4bd 100644 --- a/app/static/index.html +++ b/app/static/index.html @@ -1653,9 +1653,8 @@ currentNamespace = namespace; try { - // Para análise por namespace, vamos usar o primeiro workload encontrado - // ou implementar uma análise agregada por namespace - const response = await fetch(`/api/v1/namespace/${namespace}/status`); + // Para análise por namespace, vamos buscar todos os workloads do namespace + const response = await fetch(`/api/v1/cluster/status`); if (!response.ok) { throw new Error(`HTTP ${response.status}: ${response.statusText}`); @@ -1663,12 +1662,32 @@ const data = await response.json(); - // Por enquanto, vamos usar a análise do primeiro workload - // TODO: Implementar análise agregada por namespace - const workloads = Object.keys(data.pods || {}); - if (workloads.length > 0) { - const firstWorkload = workloads[0].split('-').slice(0, -2).join('-'); - await loadWorkloadHistoricalAnalysis(namespace, firstWorkload, timeRange); + // Encontrar o namespace específico + const targetNamespace = data.namespaces.find(ns => ns.namespace === namespace); + if (!targetNamespace) { + showError('Namespace not found'); + return; + } + + // Agrupar pods por deployment + const deployments = {}; + Object.values(targetNamespace.pods).forEach(pod => { + if (pod.validations && pod.validations.length > 0) { + const deploymentName = pod.pod_name.split('-').slice(0, -2).join('-') || 'unknown'; + if (!deployments[deploymentName]) { + deployments[deploymentName] = []; + } + deployments[deploymentName].push(pod); + } + }); + + // Se há apenas um deployment, usar análise de workload + const deploymentNames = Object.keys(deployments); + if (deploymentNames.length === 1) { + await loadWorkloadHistoricalAnalysis(namespace, deploymentNames[0], timeRange); + } else if (deploymentNames.length > 1) { + // Para múltiplos deployments, usar o primeiro + await loadWorkloadHistoricalAnalysis(namespace, deploymentNames[0], timeRange); } else { showError('No workloads found in namespace'); }