이벤트유형 CONTROL_ > CHECK_ 로 변경
eapim-admin CI / build (push) Has been cancelled

This commit is contained in:
eastargh
2026-08-06 09:15:57 +09:00
parent 643e7fcdf2
commit db57e95233
5 changed files with 20 additions and 20 deletions
@@ -20,6 +20,6 @@ public class WebhookReqEventId implements Serializable {
private String webhookReqId;
@Column(name = "EVENT_TYPE", nullable = false, length = 50)
@Comment("이벤트 유형 (CONTROL_START, ERROR_START 등)")
@Comment("이벤트 유형 (CHECK_START, ERROR_START 등)")
private String eventType;
}
@@ -58,8 +58,8 @@ public class ApiStatusDetectionService {
private static final Logger log = LoggerFactory.getLogger(ApiStatusDetectionService.class);
public static final String EVENT_CONTROL_START = "CONTROL_START";
public static final String EVENT_CONTROL_END = "CONTROL_END";
public static final String EVENT_CHECK_START = "CHECK_START";
public static final String EVENT_CHECK_END = "CHECK_END";
public static final String EVENT_ERROR_START = "ERROR_START";
public static final String EVENT_ERROR_END = "ERROR_END";
public static final String EVENT_DELAY_START = "DELAY_START";
@@ -119,8 +119,8 @@ public class ApiStatusDetectionService {
/**
* 이벤트 감지
* @param event "CONTROL_START" : 점검시작
"CONTROL_END" : 점검종료
* @param event "CHECK_START" : 점검시작
"CHECK_END" : 점검종료
"ERROR_START" : 장애시작
"ERROR_END" : 장애종료
"DELAY_START" : 지연시작
@@ -154,8 +154,8 @@ public class ApiStatusDetectionService {
case EVENT_DELAY_END:
markRecovered(event, targets);
break;
case EVENT_CONTROL_START:
case EVENT_CONTROL_END:
case EVENT_CHECK_START:
case EVENT_CHECK_END:
// 점검은 관리자 등록 공지가 원천 - 재기록하지 않음
log.debug("점검 이벤트는 장애 데이터로 기록하지 않음: {} {}", event, targets);
break;
@@ -17,8 +17,8 @@ public interface ApiStatusRepository extends BaseRepository<ApiStatus, String> {
/**
* API 상태 판단. 정상(N), 점검(C), 지연(D), 장애(E)
*
* 1. 정상/지연/장애 -> 점검중 : CONTROL_START
* 2. 점검 -> 점검X : CONTROL_END
* 1. 정상/지연/장애 -> 점검중 : CHECK_START
* 2. 점검 -> 점검X : CHECK_END
* 3. 정상/지연 -> 장애 : ERROR_START
* 4. 장애 -> 장애X : ERROR_END
* 5. 정상 -> 지연 : DELAY_START
@@ -34,8 +34,8 @@ public interface ApiStatusRepository extends BaseRepository<ApiStatus, String> {
+ " FROM ("
+ " SELECT EAISVCNAME"
+ " , STATUS_CODE AS PREV_STATUS_CODE "
+ " , CASE WHEN STATUS_CODE != 'C' AND CTRL_YN = 'Y' THEN 'CONTROL_START'"
+ " WHEN STATUS_CODE = 'C' AND CTRL_YN = 'N' THEN 'CONTROL_END'"
+ " , CASE WHEN STATUS_CODE != 'C' AND CTRL_YN = 'Y' THEN 'CHECK_START'"
+ " WHEN STATUS_CODE = 'C' AND CTRL_YN = 'N' THEN 'CHECK_END'"
+ " WHEN STATUS_CODE IN ('N','D') AND ERR_YN = 'Y' THEN 'ERROR_START'"
+ " WHEN STATUS_CODE = 'E' AND ERR_YN = 'N' THEN 'ERROR_END'"
+ " WHEN STATUS_CODE = 'N' AND DELAY_YN = 'Y' THEN 'DELAY_START'"
@@ -45,7 +45,7 @@ public interface ApiStatusRepository extends BaseRepository<ApiStatus, String> {
+ " SELECT A.EAISVCNAME"
+ " , NVL(B.STATUS_CODE, 'N') AS STATUS_CODE"
// 점검(KIND='MAINTENANCE')만 CTRL_YN 대상이다. KIND 를 안 걸면 관리자가 시작~종료 시각을
// 넣어 등록한 장애 공지까지 '점검중'으로 오판해 CONTROL_START 가 발생한다.
// 넣어 등록한 장애 공지까지 '점검중'으로 오판해 CHECK_START 가 발생한다.
+ " , NVL(( SELECT MAX('Y') FROM EMSAPP.DJB_APISTATUS_INCIDENT_API X"
+ " WHERE EXISTS (SELECT 1 FROM EMSAPP.DJB_APISTATUS_INCIDENT Y WHERE X.INCIDENT_ID = Y.INCIDENT_ID "
+ " AND Y.KIND = 'MAINTENANCE'"
@@ -179,8 +179,8 @@ public class ApiStatusService {
private String resolveStatusCode(String event) {
switch (event) {
case "CONTROL_START": return "C"; //점검
case "CONTROL_END": return "N"; //정상
case "CHECK_START": return "C"; //점검
case "CHECK_END": return "N"; //정상
case "ERROR_START": return "E"; //장애
case "ERROR_END": return "N"; //정상
case "DELAY_START": return "D"; //지연
@@ -195,10 +195,10 @@ public class ApiStatusService {
private HashMap<String, Object> getSwingChatMessage(String event, List<String> apiIds) {
String message = "";
switch (event) {
case "CONTROL_START":
case "CHECK_START":
message = "API 서비스 점검이 시작되었습니다"; //점검
break;
case "CONTROL_END":
case "CHECK_END":
message = "API 서비스 점검이 완료되었습니다"; //정상
break;
case "ERROR_START":
@@ -85,10 +85,10 @@ public class WebhookReceiveService {
log.info("[Webhook] 이벤트 처리 시작 - eventType: {}", eventType);
switch (eventType) {
case "CONTROL_START":
case "CHECK_START":
handleControlStart(data);
break;
case "CONTROL_END":
case "CHECK_END":
handleControlEnd(data);
break;
case "ERROR_START":
@@ -107,11 +107,11 @@ public class WebhookReceiveService {
/* ------------------------------------------------------------------ */
private void handleControlStart(JsonNode data) {
log.info("[Webhook] CONTROL_START 처리 - data: {}", data);
log.info("[Webhook] CHECK_START 처리 - data: {}", data);
// TODO: 점검시작 처리 로직
}
private void handleControlEnd(JsonNode data) {
log.info("[Webhook] CONTROL_END 처리 - data: {}", data);
log.info("[Webhook] CHECK_END 처리 - data: {}", data);
// TODO: 점검종료 처리 로직
}
private void handleErrorStart(JsonNode data) {