You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by wu...@apache.org on 2018/09/03 08:42:25 UTC
[incubator-skywalking] branch 6.0 updated: Move count and
silenceCount into window.
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch 6.0
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/6.0 by this push:
new 1f2a6f2 Move count and silenceCount into window.
1f2a6f2 is described below
commit 1f2a6f227701397fa3a7387b8ac4d617de24fe17
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Mon Sep 3 16:42:18 2018 +0800
Move count and silenceCount into window.
---
.../server/core/alarm/provider/RunningRule.java | 55 +++++++++++-----------
1 file changed, 27 insertions(+), 28 deletions(-)
diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRule.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRule.java
index e3be072..872d5a2 100644
--- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRule.java
+++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRule.java
@@ -54,8 +54,6 @@ public class RunningRule {
private final OP op;
private final int countThreshold;
private final int silencePeriod;
- private int counter;
- private int silenceCountdown;
private Map<MetaInAlarm, Window> windows;
private volatile IndicatorValueType valueType;
private Scope targetScope;
@@ -75,8 +73,6 @@ public class RunningRule {
this.countThreshold = alarmRule.getCount();
this.silencePeriod = alarmRule.getSilencePeriod();
- // -1 means silence countdown is not running.
- silenceCountdown = -1;
this.includeNames = alarmRule.getIncludeNames();
}
@@ -147,27 +143,7 @@ public class RunningRule {
}
});
- /**
- * When
- * 1. Metric value threshold triggers alarm by rule
- * 2. Counter reaches the count threshold;
- * 3. Isn't in silence stage, judged by SilenceCountdown(!=0).
- */
- if (alarmMessageList.size() > 0) {
- counter++;
- if (counter >= countThreshold && silenceCountdown < 1) {
- silenceCountdown = silencePeriod;
- return alarmMessageList;
- } else {
- silenceCountdown--;
- }
- } else {
- silenceCountdown--;
- if (counter > 0) {
- counter--;
- }
- }
- return new ArrayList<>(0);
+ return alarmMessageList;
}
/**
@@ -179,12 +155,17 @@ public class RunningRule {
public class Window {
private LocalDateTime endTime;
private int period;
+ private int counter;
+ private int silenceCountdown;
private LinkedList<Indicator> values;
private ReentrantLock lock = new ReentrantLock();
public Window(int period) {
this.period = period;
+ // -1 means silence countdown is not running.
+ silenceCountdown = -1;
+ counter = 0;
init();
}
@@ -247,11 +228,29 @@ public class RunningRule {
public AlarmMessage checkAlarm() {
if (isMatch()) {
- AlarmMessage message = new AlarmMessage();
- return message;
+ /**
+ * When
+ * 1. Metric value threshold triggers alarm by rule
+ * 2. Counter reaches the count threshold;
+ * 3. Isn't in silence stage, judged by SilenceCountdown(!=0).
+ */
+ counter++;
+ if (counter >= countThreshold && silenceCountdown < 1) {
+ silenceCountdown = silencePeriod;
+
+ //TODO
+ AlarmMessage message = new AlarmMessage();
+ return message;
+ } else {
+ silenceCountdown--;
+ }
} else {
- return AlarmMessage.NONE;
+ silenceCountdown--;
+ if (counter > 0) {
+ counter--;
+ }
}
+ return AlarmMessage.NONE;
}
private boolean isMatch() {