Merge branch '알람기능_및_UMS_연동' into jenkins_with_weblogic
This commit is contained in:
@@ -6,6 +6,11 @@ import com.eactive.eai.common.lifecycle.LifecycleListener;
|
||||
import com.eactive.eai.common.lifecycle.LifecycleSupport;
|
||||
import com.eactive.eai.common.property.PropManager;
|
||||
import com.eactive.eai.common.util.Logger;
|
||||
import com.eactive.eai.custom.alarm.AlarmStateManager;
|
||||
import com.eactive.eai.custom.alarm.condition.AlarmCondition;
|
||||
import com.eactive.eai.custom.alarm.event.AlarmEvent;
|
||||
import com.eactive.eai.custom.alarm.key.CoreAlarmKey;
|
||||
|
||||
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
|
||||
import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig;
|
||||
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
|
||||
@@ -71,6 +76,28 @@ public class CircuitBreakerManager implements Lifecycle {
|
||||
circuitBreakerRegistry = CircuitBreakerRegistry.of(config);
|
||||
|
||||
TaggedCircuitBreakerMetrics.ofCircuitBreakerRegistry(circuitBreakerRegistry).bindTo(meterRegistry);
|
||||
|
||||
circuitBreakerRegistry.getEventPublisher().onEntryAdded(event -> {
|
||||
CircuitBreaker cb = event.getAddedEntry();
|
||||
String apiId = cb.getName();
|
||||
|
||||
// 여기서 상태 변경 리스너를 한 번만 등록
|
||||
cb.getEventPublisher().onStateTransition(stateEvent -> {
|
||||
CircuitBreaker.State from = stateEvent.getStateTransition().getFromState();
|
||||
CircuitBreaker.State to = stateEvent.getStateTransition().getToState();
|
||||
|
||||
AlarmEvent alarmEvent = AlarmEvent.builder().key(CoreAlarmKey.CircuitBreaker)
|
||||
.condition(AlarmCondition.builder().build())
|
||||
.message(String.format("CircuitBreaker state changed. apiId=%s, %s -> %s", apiId, from, to))
|
||||
.build();
|
||||
|
||||
AlarmStateManager.getAlarmStateManager().onEvnet(alarmEvent);
|
||||
|
||||
logger.warn("CircuitBreaker state changed. apiId={}, {} -> {}", apiId, from, to);
|
||||
});
|
||||
|
||||
logger.info("Registered StateTransition listener for: {}", apiId);
|
||||
});
|
||||
|
||||
logger.info("init CircuitBreaker - "+config);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.eactive.eai.common.util;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
public final class Jsons {
|
||||
|
||||
private Jsons() {}
|
||||
|
||||
public static final Gson GSON = new Gson();
|
||||
}
|
||||
Reference in New Issue
Block a user