diff --git a/CLAUDE.md b/CLAUDE.md index 5f8ae5b..d437865 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -81,18 +81,24 @@ com.dgu.cap │ └── SseController.java # GET /api/stream ├── metric/ │ ├── PrometheusService.java # Prometheus HTTP API 연동 -│ └── MetricController.java +│ ├── MetricController.java +│ ├── MetricPoint.java # 시계열 데이터 포인트 +│ └── CurrentMetric.java ├── log/ │ ├── LokiService.java # Loki HTTP API 연동 │ └── LogController.java ├── kubernetes/ │ ├── KubernetesService.java # K8s Java Client 연동 -│ └── PodController.java +│ ├── PodController.java +│ ├── PodInfo.java +│ └── PodEvent.java └── ai/ ├── AiService.java # FastAPI POST /analyze + fallback - ├── PodData.java # AI 요청 DTO + ├── MetricsCollectionScheduler.java # 60초 스케줄러 — 전체 Pod 메트릭 수집 후 AI 전송 + ├── PodData.java # AI /analyze 요청 DTO ├── AiResult.java # AI 응답 DTO - └── MetricPoint.java # 시계열 데이터 포인트 + ├── MetricsData.java # 메트릭 시계열 묶음 DTO + └── MetricsSendRequest.java # AI /metrics 요청 DTO ``` ## 아키텍처 diff --git a/src/main/java/com/dgu/cap/ticket/TicketActionLog.java b/src/main/java/com/dgu/cap/ticket/TicketActionLog.java index 8d436fb..9f313af 100644 --- a/src/main/java/com/dgu/cap/ticket/TicketActionLog.java +++ b/src/main/java/com/dgu/cap/ticket/TicketActionLog.java @@ -1,5 +1,6 @@ package com.dgu.cap.ticket; +import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.CreationTimestamp; @@ -18,6 +19,7 @@ public class TicketActionLog { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "ticket_id") private Ticket ticket; diff --git a/src/main/java/com/dgu/cap/ticket/TicketMetricSnapshot.java b/src/main/java/com/dgu/cap/ticket/TicketMetricSnapshot.java index 4f8fec9..d6033ac 100644 --- a/src/main/java/com/dgu/cap/ticket/TicketMetricSnapshot.java +++ b/src/main/java/com/dgu/cap/ticket/TicketMetricSnapshot.java @@ -1,5 +1,6 @@ package com.dgu.cap.ticket; +import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.*; @@ -18,6 +19,7 @@ public class TicketMetricSnapshot { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @JsonIgnore @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "ticket_id") private Ticket ticket;