This commit is contained in:
+1
-1
@@ -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":
|
||||
|
||||
+4
-4
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user