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/