diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmCore.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmCore.java index b43e18cff..a0a735ca5 100644 --- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmCore.java +++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmCore.java @@ -74,12 +74,12 @@ public class AlarmCore { boolean[] hasExecute = new boolean[] {false}; runningContext.values().forEach(ruleList -> ruleList.forEach(runningRule -> { if (minutes > 0) { - hasExecute[0] = true; runningRule.moveTo(checkTime); /** * Don't run in the first quarter per min, avoid to trigger false alarm. */ if (checkTime.getSecondOfMinute() > 15) { + hasExecute[0] = true; alarmMessageList.addAll(runningRule.check()); } } diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmModuleProvider.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmModuleProvider.java index 3c228a52a..f536caa0e 100644 --- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmModuleProvider.java +++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmModuleProvider.java @@ -46,7 +46,9 @@ public class AlarmModuleProvider extends ModuleProvider { } RulesReader reader = new RulesReader(applicationReader); Rules rules = reader.readRules(); - this.registerServiceImplementation(IndicatorNotify.class, new NotifyHandler(rules)); + NotifyHandler notifyHandler = new NotifyHandler(rules); + notifyHandler.init(new AlarmStandardPersistence()); + this.registerServiceImplementation(IndicatorNotify.class, notifyHandler); } @Override public void start() throws ServiceNotProvidedException, ModuleStartException { diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java index 408f9eedc..b0cb6655b 100644 --- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java +++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java @@ -53,7 +53,6 @@ public class NotifyHandler implements IndicatorNotify { runningRules.forEach(rule -> rule.in(meta, indicator)); } - @Override public void init(AlarmCallback... callbacks) { List allCallbacks = new ArrayList<>(); for (AlarmCallback callback : callbacks) { diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmEntrance.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmEntrance.java index b2d0e4114..207ec3e0e 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmEntrance.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmEntrance.java @@ -105,7 +105,6 @@ public class AlarmEntrance { serviceInstanceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInstanceInventoryCache.class); endpointInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(EndpointInventoryCache.class); indicatorNotify = moduleManager.find(AlarmModule.NAME).provider().getService(IndicatorNotify.class); - indicatorNotify.init(new AlarmStandardPersistence()); } } finally { initLock.unlock(); diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/IndicatorNotify.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/IndicatorNotify.java index d146ab2bb..4d05622a0 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/IndicatorNotify.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/IndicatorNotify.java @@ -33,6 +33,4 @@ import org.apache.skywalking.oap.server.library.module.Service; */ public interface IndicatorNotify extends Service { void notify(MetaInAlarm indicatorName, Indicator indicator); - - void init(AlarmCallback... callbacks); }