You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by pe...@apache.org on 2018/10/10 06:15:30 UTC
[incubator-skywalking] branch master updated: Add alarm timestamp.
(#1741)
This is an automated email from the ASF dual-hosted git repository.
pengys pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new b643190 Add alarm timestamp. (#1741)
b643190 is described below
commit b643190005ee03d49ef2e8543902c0daaf7ed8b0
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Wed Oct 10 14:15:24 2018 +0800
Add alarm timestamp. (#1741)
---
oap-server/server-alarm-plugin/pom.xml | 8 +++-
.../server/core/alarm/provider/RunningRule.java | 2 +
oap-server/server-library/library-util/pom.xml | 8 ++++
.../oap/server/library/util/TimeBucketUtils.java | 12 +++++-
.../src/main/resources/alarm-settings.yml | 48 +++++++++++-----------
5 files changed, 51 insertions(+), 27 deletions(-)
diff --git a/oap-server/server-alarm-plugin/pom.xml b/oap-server/server-alarm-plugin/pom.xml
index 7848c6a..14fea19 100644
--- a/oap-server/server-alarm-plugin/pom.xml
+++ b/oap-server/server-alarm-plugin/pom.xml
@@ -32,8 +32,12 @@
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>server-core</artifactId>
- <version>6.0.0-alpha-SNAPSHOT</version>
- <scope>compile</scope>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.skywalking</groupId>
+ <artifactId>library-util</artifactId>
+ <version>${project.version}</version>
</dependency>
</dependencies>
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 f2a96fa..d3d1d62 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
@@ -31,6 +31,7 @@ import org.apache.skywalking.oap.server.core.analysis.indicator.Indicator;
import org.apache.skywalking.oap.server.core.analysis.indicator.IntValueHolder;
import org.apache.skywalking.oap.server.core.analysis.indicator.LongValueHolder;
import org.apache.skywalking.oap.server.core.source.Scope;
+import org.apache.skywalking.oap.server.library.util.TimeBucketUtils;
import org.joda.time.LocalDateTime;
import org.joda.time.Minutes;
import org.joda.time.format.DateTimeFormat;
@@ -148,6 +149,7 @@ public class RunningRule {
alarmMessage.setId0(meta.getId0());
alarmMessage.setId1(meta.getId1());
alarmMessage.setAlarmMessage(formatter.format(meta));
+ alarmMessage.setTimeBucket(TimeBucketUtils.INSTANCE.getTime(LocalDateTime.now()));
alarmMessageList.add(alarmMessage);
}
});
diff --git a/oap-server/server-library/library-util/pom.xml b/oap-server/server-library/library-util/pom.xml
index 6f3ca2c..23e8045 100644
--- a/oap-server/server-library/library-util/pom.xml
+++ b/oap-server/server-library/library-util/pom.xml
@@ -29,4 +29,12 @@
<artifactId>library-util</artifactId>
<packaging>jar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>joda-time</groupId>
+ <artifactId>joda-time</artifactId>
+ <version>${joda-time.version}</version>
+ </dependency>
+ </dependencies>
</project>
\ No newline at end of file
diff --git a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/TimeBucketUtils.java b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/TimeBucketUtils.java
index 078c6a3..b80cc10 100644
--- a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/TimeBucketUtils.java
+++ b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/TimeBucketUtils.java
@@ -18,8 +18,11 @@
package org.apache.skywalking.oap.server.library.util;
-import java.text.*;
-import java.util.*;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import org.joda.time.LocalDateTime;
/**
* @author peng-yongsheng
@@ -54,6 +57,11 @@ public enum TimeBucketUtils {
return year * 10000000000L + month * 100000000 + day * 1000000 + hour * 10000 + minute * 100 + second;
}
+ public long getTime(LocalDateTime time) {
+ return time.getYear() * 10000000000L + time.getMonthOfYear() * 100000000 + time.getDayOfMonth() * 1000000
+ + time.getHourOfDay() * 10000 + time.getMinuteOfHour() * 100 + time.getSecondOfMinute();
+ }
+
public String formatMinuteTimeBucket(long minuteTimeBucket) throws ParseException {
SimpleDateFormat minuteDateFormat = new SimpleDateFormat("yyyyMMddHHmm");
Date date = minuteDateFormat.parse(String.valueOf(minuteTimeBucket));
diff --git a/oap-server/server-starter/src/main/resources/alarm-settings.yml b/oap-server/server-starter/src/main/resources/alarm-settings.yml
index 5ea4ff5..f26fa1e 100644
--- a/oap-server/server-starter/src/main/resources/alarm-settings.yml
+++ b/oap-server/server-starter/src/main/resources/alarm-settings.yml
@@ -14,29 +14,31 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-rules:
- # Rule unique name, must be ended with `_rule`.
- endpoint_percent_rule:
- # Indicator value need to be long, double or int
- indicator-name: endpoint_percent
- threshold: 75
- op: <
- # The length of time to evaluate the metric
- period: 10
- # How many times after the metric match the condition, will trigger alarm
- count: 3
- # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period.
- silence-period: 10
- service_percent_rule:
- indicator-name: service_percent
- # [Optional] Default, match all services in this indicator
- include-names:
- - service_a
- - service_b
- threshold: 85
- op: <
- period: 10
- count: 4
+# Sample alarm rules.
+#rules:
+# # Rule unique name, must be ended with `_rule`.
+# endpoint_percent_rule:
+# # Indicator value need to be long, double or int
+# indicator-name: endpoint_percent
+# threshold: 75
+# op: <
+# # The length of time to evaluate the metric
+# period: 10
+# # How many times after the metric match the condition, will trigger alarm
+# count: 3
+# # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period.
+# silence-period: 10
+# message: Successful rate of endpoint {name} is lower than 75%
+# service_percent_rule:
+# indicator-name: service_percent
+# # [Optional] Default, match all services in this indicator
+# include-names:
+# - service_a
+# - service_b
+# threshold: 85
+# op: <
+# period: 10
+# count: 4
#webhooks:
# - http://127.0.0.1/notify/