Repository: karaf-decanter
Updated Branches:
  refs/heads/master a8c570cb1 -> f65184154


[KARAF-3979] SLA check can be filter by type


Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/f6518415
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/f6518415
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/f6518415

Branch: refs/heads/master
Commit: f651841546c13a1648cda7c12e00e379305c5074
Parents: a8c570c
Author: Jean-Baptiste Onofré <[email protected]>
Authored: Thu Oct 15 10:32:09 2015 +0200
Committer: Jean-Baptiste Onofré <[email protected]>
Committed: Thu Oct 15 10:32:09 2015 +0200

----------------------------------------------------------------------
 .../org.apache.karaf.decanter.sla.checker.cfg   |  5 ++--
 .../karaf/decanter/sla/checker/Checker.java     | 31 +++++++++++++-------
 2 files changed, 24 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/f6518415/sla/checker/src/main/cfg/org.apache.karaf.decanter.sla.checker.cfg
----------------------------------------------------------------------
diff --git a/sla/checker/src/main/cfg/org.apache.karaf.decanter.sla.checker.cfg 
b/sla/checker/src/main/cfg/org.apache.karaf.decanter.sla.checker.cfg
index d820b68..73996be 100644
--- a/sla/checker/src/main/cfg/org.apache.karaf.decanter.sla.checker.cfg
+++ b/sla/checker/src/main/cfg/org.apache.karaf.decanter.sla.checker.cfg
@@ -6,8 +6,9 @@
 #
 # The format is the following:
 #
-# eventProperty.level=check:value
+# type.eventProperty.level=check:value
 #
+# type is optional, it's the event type. It allows you filter the check for a 
given collected data type.
 # eventProperty is the collected event property name.
 # level is error or warn, depending if the alert to send is critical or severe
 # check is the check type. It could be range, equal, notequal, match, notmatch
@@ -20,4 +21,4 @@
 # message.warn=match:.*foobar.*
 #
 # For instance, if you want to create a critical (error) alert if the 
HeapMemoryUsage.used is greater than 200M:
-# HeapMemoryUsage.used.warn=range:[0,200000)
\ No newline at end of file
+# jmx-local.HeapMemoryUsage.used.warn=range:[0,200000)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/f6518415/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java
----------------------------------------------------------------------
diff --git 
a/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java 
b/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java
index 3b8ea75..f32c07e 100644
--- 
a/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java
+++ 
b/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java
@@ -45,24 +45,35 @@ public class Checker implements EventHandler {
 
     @Override
     public void handleEvent(Event collectEvent) {
+        String type = (String) collectEvent.getProperty("type");
         for (String name : collectEvent.getPropertyNames()) {
+
+            // error
+            String errorPattern = null;
             if (config.get(name + ".error") != null) {
-                // an error alert is defined for the collect event property
-                // checking the alert
-                String pattern = (String) config.get(name + ".error");
+                errorPattern = (String) config.get(name + ".error");
+            } else if (config.get(type + "." + name + ".error") != null) {
+                errorPattern = (String) config.get(type + "." + name + 
".error");
+            }
+            if (errorPattern != null) {
                 Object value = collectEvent.getProperty(name);
-                if (!validate(pattern, value)) {
-                    Event alertEvent = populateAlertEvent("error", 
collectEvent, name, pattern);
+                if (!validate(errorPattern, value)) {
+                    Event alertEvent = populateAlertEvent("error", 
collectEvent, name, errorPattern);
                     eventAdmin.postEvent(alertEvent);
                 }
             }
+
+            // warn
+            String warnPattern = null;
             if (config.get(name + ".warn") != null) {
-                // a warn alert is defined for the collect event property
-                // checking the alert
-                String pattern = (String) config.get(name + ".warn");
+                warnPattern = (String) config.get(name + ".warn");
+            } else if (config.get(type + "." + name + ".warn") != null) {
+                warnPattern = (String) config.get(type + "." + name + ".warn");
+            }
+            if (warnPattern != null) {
                 Object value = collectEvent.getProperty(name);
-                if (!validate(pattern, value)) {
-                    Event alertEvent = populateAlertEvent("warn", 
collectEvent, name, pattern);
+                if (!validate(warnPattern, value)) {
+                    Event alertEvent = populateAlertEvent("warn", 
collectEvent, name, warnPattern);
                     eventAdmin.postEvent(alertEvent);
                 }
             }

Reply via email to