/** * Create a default filter with {@link OpLevel#INFO} as default threshold. * */ public EventLevelTimeFilter() { minLevel = OpLevel.INFO.ordinal(); }
/** * Matches a given sev/key/value with this token * * @return true of matches, false otherwise */ public boolean isMatch(OpLevel sev, Object key, Object value) { boolean match; boolean sevMatch = (sev.ordinal() >= sevLimit.ordinal()); match = sevMatch && ((value != null && valuePatten != null)? valuePatten.matcher(value.toString()).matches(): true); return match; }
/** * Create a default filter with a given minimum level threshold. * * @param mLevel * minimum severity level threshold * @param elapsedUsc * elapsed time threshold (-1 disable) * @param waitUsc * wait time threshold (-1 disable) * @param wallUsc * wall time threshold (-1 disable) * @param msgRegex * message regex (null means all) */ public EventLevelTimeFilter(OpLevel mLevel, long elapsedUsc, long waitUsc, long wallUsc, String msgRegex) { minLevel = mLevel.ordinal(); elapsedUsec = elapsedUsc; waitUsec = waitUsc; wallUsec = wallUsc; msgRegx = msgRegex; if (msgRegx != null) { msgPattern = Pattern.compile(msgRegx); } }
/** * Returns true if a given level passes the filter, false otherwise * * @param level * event severity level * @param sink * event sink where filter request is coming from * @return true if level passed all filters, false otherwise * @see OpLevel * @see EventSink */ private boolean passLevel(OpLevel level, EventSink sink) { return (level.ordinal() >= minLevel) && sink.isSet(level); }
/** * Randomly select a level between TRACE and last level * * @return randomly selected level within the range * @throws IllegalArgumentException * if maxLevel < minLevel */ public static OpLevel anyLevel() { return valueOf(Utils.randomRange(TRACE.ordinal(), (enumList.length - 1))); }
jsonString.append(JSON_SEVERITY_LABEL).append(ATTR_SEP); Utils.quote(level, jsonString).append(ATTR_JSON); jsonString.append(JSON_SEVERITY_NO_LABEL).append(ATTR_SEP).append(level.ordinal()).append(ATTR_JSON); jsonString.append(JSON_TYPE_LABEL).append(ATTR_SEP); Utils.quote(OpType.DATAGRAM, jsonString).append(ATTR_JSON);
jsonString.append(JSON_SEVERITY_NO_LABEL).append(ATTR_SEP).append(snap.getSeverity().ordinal()) .append(ATTR_JSON); jsonString.append(JSON_TYPE_LABEL).append(ATTR_SEP);
jsonString.append(JSON_SEVERITY_LABEL).append(ATTR_SEP); Utils.quote(activity.getSeverity(), jsonString).append(ATTR_JSON); jsonString.append(JSON_SEVERITY_NO_LABEL).append(ATTR_SEP).append(activity.getSeverity().ordinal()) .append(ATTR_JSON); jsonString.append(JSON_TYPE_LABEL).append(ATTR_SEP);
jsonString.append(JSON_SEVERITY_NO_LABEL).append(ATTR_SEP).append(event.getSeverity().ordinal()) .append(ATTR_JSON); jsonString.append(JSON_TYPE_LABEL).append(ATTR_SEP);
@Override public void setConfiguration(Map<String, ?> settings) { config = settings; String levelStr = Utils.getString(LEVEL, settings, OpLevel.INFO.toString()); minLevel = levelStr.equalsIgnoreCase(OFF_LEVEL_LABEL) ? OFF_LEVEL_INT : OpLevel.valueOf(levelStr).ordinal(); elapsedUsec = Utils.getLong(ELAPSED_USEC, settings, elapsedUsec); waitUsec = Utils.getLong(WAIT_USEC, settings, waitUsec); wallUsec = Utils.getLong(WALL_USEC, settings, wallUsec); ttl = Utils.getLong(TTL_SEC, settings, ttl); // configure duplicate detection dupTimeoutSec = Utils.getLong(DUPS_TIMEOUT, settings, dupTimeoutSec); dupCacheSize = Utils.getInt(DUPS_CACHE_SIZE, settings, dupCacheSize); dupUseSoundex = Utils.getBoolean(DUPS_USE_SOUNDEX, settings, dupUseSoundex); dupAppendStats = Utils.getBoolean(DUPS_APPEND_STATS, settings, dupAppendStats); dupsSuppress = Utils.getBoolean(DUPS_SUPPRESS, settings, dupsSuppress); if (dupsSuppress) { msgTracker = TimeTracker.newTracker(dupCacheSize, dupTimeoutSec*2, TimeUnit.SECONDS); TrackingLogger.addDumpProvider(new TimeTrackerDumpProvider(EventLevelTimeFilter.class.getName(), "DupMsgHits", msgTracker)); } msgRegx = Utils.getString(MSG_PATTERN, settings, null); if (msgRegx != null) { msgPattern = Pattern.compile(msgRegx); } }