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); } }
