log seq 디버그 추가

This commit is contained in:
pksup
2026-01-13 17:39:17 +09:00
parent 80933895f4
commit 0f5d4f08a6
2 changed files with 5 additions and 75 deletions
@@ -27,6 +27,11 @@ public class ApiStatsMonitorImpl implements StatisticsMonitor {
try {
// 로그 시퀀스 100, 400, 900만 처리
int logSequence = requestEaiMessage.getLogPssSno();
// 디버깅: 모든 logSequence 로깅
logger.info("API Stats - logSeq: {}, API: {}, errorCode: {}",
logSequence, requestEaiMessage.getEAISvcCd(), requestEaiMessage.getStatErrorCode());
if (logSequence != 100 && logSequence != 400 && logSequence != 900) {
return;
}
@@ -90,9 +90,6 @@ public class ApiStatsScheduler {
for (ApiStatsMinute stats : statsList) {
try {
// Precision 체크 (디버깅)
checkPrecision(stats);
minuteLogger.log(stats);
savedCount++;
@@ -161,9 +158,6 @@ public class ApiStatsScheduler {
for (ApiStatsHour stats : statsList) {
try {
// Precision 체크 (디버깅)
checkPrecision(stats);
hourLogger.log(stats);
savedCount++;
@@ -291,73 +285,4 @@ public class ApiStatsScheduler {
log.error("Error during shutdown", e);
}
}
/**
* Precision 체크 (디버깅용)
*/
private void checkPrecision(ApiStatsMinute stats) {
checkPrecisionCommon(stats.getApiName(), stats.getStatTime(),
stats.getTotalCnt(), stats.getSuccessCnt(), stats.getTimeoutCnt(),
stats.getSystemErrCnt(), stats.getBizErrCnt(),
stats.getSeq900TimeoutCnt(), stats.getSeq900SystemErrCnt(), stats.getSeq900BizErrCnt(),
stats.getAvgRespTime(), stats.getMinRespTime(), stats.getMaxRespTime(),
stats.getP50RespTime(), stats.getP95RespTime());
}
/**
* Precision 체크 (디버깅용)
*/
private void checkPrecision(ApiStatsHour stats) {
checkPrecisionCommon(stats.getApiName(), stats.getStatTime(),
stats.getTotalCnt(), stats.getSuccessCnt(), stats.getTimeoutCnt(),
stats.getSystemErrCnt(), stats.getBizErrCnt(),
stats.getSeq900TimeoutCnt(), stats.getSeq900SystemErrCnt(), stats.getSeq900BizErrCnt(),
stats.getAvgRespTime(), stats.getMinRespTime(), stats.getMaxRespTime(),
stats.getP50RespTime(), stats.getP95RespTime());
}
private void checkPrecisionCommon(String apiName, Object statTime,
Long totalCnt, Long successCnt, Long timeoutCnt, Long systemErrCnt, Long bizErrCnt,
Long seq900TimeoutCnt, Long seq900SystemErrCnt, Long seq900BizErrCnt,
java.math.BigDecimal avgRespTime, java.math.BigDecimal minRespTime, java.math.BigDecimal maxRespTimeValue,
java.math.BigDecimal p50RespTime, java.math.BigDecimal p95RespTime) {
// NUMBER(12) 체크 - 건수 필드
if (totalCnt != null && totalCnt > 999999999999L) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, TOTAL_CNT: {}", apiName, statTime, totalCnt);
}
if (successCnt != null && successCnt < 0) {
log.warn("NEGATIVE VALUE - API: {}, Time: {}, SUCCESS_CNT: {}", apiName, statTime, successCnt);
}
if (successCnt != null && successCnt > 999999999999L) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, SUCCESS_CNT: {}", apiName, statTime, successCnt);
}
if (timeoutCnt != null && timeoutCnt > 999999999999L) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, TIMEOUT_CNT: {}", apiName, statTime, timeoutCnt);
}
if (systemErrCnt != null && systemErrCnt > 999999999999L) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, SYSTEM_ERR_CNT: {}", apiName, statTime, systemErrCnt);
}
if (bizErrCnt != null && bizErrCnt > 999999999999L) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, BIZ_ERR_CNT: {}", apiName, statTime, bizErrCnt);
}
// NUMBER(10,3) 체크 - 응답시간 필드
java.math.BigDecimal maxRespTimeLimit = new java.math.BigDecimal("9999999.999");
if (avgRespTime != null && avgRespTime.compareTo(maxRespTimeLimit) > 0) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, AVG_RESP_TIME: {}", apiName, statTime, avgRespTime);
}
if (minRespTime != null && minRespTime.compareTo(maxRespTimeLimit) > 0) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, MIN_RESP_TIME: {}", apiName, statTime, minRespTime);
}
if (maxRespTimeValue != null && maxRespTimeValue.compareTo(maxRespTimeLimit) > 0) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, MAX_RESP_TIME: {}", apiName, statTime, maxRespTimeValue);
}
if (p50RespTime != null && p50RespTime.compareTo(maxRespTimeLimit) > 0) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, P50_RESP_TIME: {}", apiName, statTime, p50RespTime);
}
if (p95RespTime != null && p95RespTime.compareTo(maxRespTimeLimit) > 0) {
log.warn("PRECISION EXCEEDED - API: {}, Time: {}, P95_RESP_TIME: {}", apiName, statTime, p95RespTime);
}
}
}