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