diff --git a/build.gradle b/build.gradle index 0213d6c..d1c14a9 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-mail' - implementation 'io.kubernetes:client-java:21.0.1' + implementation 'io.kubernetes:client-java:24.0.0' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'org.postgresql:postgresql' diff --git a/src/main/java/com/dgu/cap/ai/MetricsCollectionScheduler.java b/src/main/java/com/dgu/cap/ai/MetricsCollectionScheduler.java index 3fe8b4c..ee46943 100644 --- a/src/main/java/com/dgu/cap/ai/MetricsCollectionScheduler.java +++ b/src/main/java/com/dgu/cap/ai/MetricsCollectionScheduler.java @@ -27,13 +27,17 @@ public class MetricsCollectionScheduler { @Scheduled(fixedDelay = 60000) public void collectAndSendMetrics() { - List pods = kubernetesService.getAllPods(); - for (PodInfo pod : pods) { - try { - sendMetrics(pod); - } catch (Exception e) { - log.warn("메트릭 수집/전송 실패 - pod: {}, error: {}", pod.getPodName(), e.getMessage()); + try { + List pods = kubernetesService.getAllPods(); + for (PodInfo pod : pods) { + try { + sendMetrics(pod); + } catch (Exception e) { + log.warn("메트릭 수집/전송 실패 - pod: {}, error: {}", pod.getPodName(), e.getMessage()); + } } + } catch (Exception e) { + log.error("메트릭 수집 스케줄러 전체 실패: {}", e.getMessage()); } } diff --git a/src/main/java/com/dgu/cap/anomaly/AnomalyDetectionService.java b/src/main/java/com/dgu/cap/anomaly/AnomalyDetectionService.java index 951b49d..84b3393 100644 --- a/src/main/java/com/dgu/cap/anomaly/AnomalyDetectionService.java +++ b/src/main/java/com/dgu/cap/anomaly/AnomalyDetectionService.java @@ -40,13 +40,17 @@ public class AnomalyDetectionService { @Scheduled(fixedDelay = 30000) public void detectAnomalies() { - List pods = kubernetesService.getAllPods(); - for (PodInfo pod : pods) { - try { - checkPod(pod); - } catch (Exception e) { - log.warn("Pod 이상 탐지 중 오류 - pod: {}, error: {}", pod.getPodName(), e.getMessage()); + try { + List pods = kubernetesService.getAllPods(); + for (PodInfo pod : pods) { + try { + checkPod(pod); + } catch (Exception e) { + log.warn("Pod 이상 탐지 중 오류 - pod: {}, error: {}", pod.getPodName(), e.getMessage()); + } } + } catch (Exception e) { + log.error("이상 탐지 스케줄러 전체 실패: {}", e.getMessage()); } } diff --git a/src/main/java/com/dgu/cap/kubernetes/KubernetesService.java b/src/main/java/com/dgu/cap/kubernetes/KubernetesService.java index 61e9432..dcc466e 100644 --- a/src/main/java/com/dgu/cap/kubernetes/KubernetesService.java +++ b/src/main/java/com/dgu/cap/kubernetes/KubernetesService.java @@ -48,7 +48,7 @@ public List getPods(String namespace) { return podList.getItems().stream() .map(this::toPodInfo) .collect(Collectors.toList()); - } catch (ApiException e) { + } catch (Exception e) { log.warn("Pod 목록 조회 실패 - namespace: {}, error: {}", namespace, e.getMessage()); return Collections.emptyList(); } @@ -61,7 +61,7 @@ public List getAllPods() { return podList.getItems().stream() .map(this::toPodInfo) .collect(Collectors.toList()); - } catch (ApiException e) { + } catch (Exception e) { log.warn("전체 Pod 목록 조회 실패: {}", e.getMessage()); return Collections.emptyList(); } @@ -77,7 +77,7 @@ public List getPodEvents(String podName, String namespace) { return eventList.getItems().stream() .map(this::toPodEvent) .collect(Collectors.toList()); - } catch (ApiException e) { + } catch (Exception e) { log.warn("Pod 이벤트 조회 실패 - pod: {}, error: {}", podName, e.getMessage()); return Collections.emptyList(); }