public TimeDifferenceRuleHandler(int id, TimeDifferenceRule timeDifferenceRule, AnalyzerConfig analyzerConfig) { RuleID = id; _firstMessageConfig = analyzerConfig.GetLogMessageConfig(timeDifferenceRule.FirstLogMessageID); _secondMessageConfig = analyzerConfig.GetLogMessageConfig(timeDifferenceRule.SecondLogMessageID); }
public DuplicateDetectionRuleHandler(int id, DuplicateDetectionRule duplicateDetectionRule, AnalyzerConfig analyzerConfig) { RuleID = id; _duplicateDetectionRule = duplicateDetectionRule; _logMessage = analyzerConfig.LogMessages.FirstOrDefault(lm => lm != null && duplicateDetectionRule.LogMessageID == lm.ID); _monitoredLogMessages = new List <LogMessage>(); }
public AggregateFunctionRuleHandler(int id, AggregateFunctionRule aggregateFunctionRule, AnalyzerConfig analyzerConfig) { RuleID = id; _aggregateFunctionRule = aggregateFunctionRule; _logMessage = analyzerConfig.LogMessages.FirstOrDefault(lm => lm != null && _aggregateFunctionRule.LogMessageID == lm.ID); _conditions = aggregateFunctionRule.ConditionsIDs?.Select(cID => analyzerConfig.Conditions?.FirstOrDefault(c => c.ID == cID)).ToArray(); }
public LogFrequencyRuleHandler(int id, LogFrequencyRule logFrequencyRule, AnalyzerConfig analyzerConfig) { RuleID = id; _logFrequencyRule = logFrequencyRule; _logMessage = analyzerConfig.GetLogMessageConfig(_logFrequencyRule.LogMessageID); _frequencyCheckTimer = new Timer(_logFrequencyRule.TimeInSeconds * 1000); _frequencyCheckTimer.Elapsed += FrequencyCheckTimer_Elapsed; _frequencyCheckTimer.Start(); }
public MessageAbsenceDetectionRuleHandler(int id, MessageAbsenceDetectionRule messageAbsenceDetectionRule, AnalyzerConfig analyzerConfig) { RuleID = id; if (messageAbsenceDetectionRule.AbsenceIntervalInSeconds > 0) { _monitoringTimer = new System.Timers.Timer(messageAbsenceDetectionRule.AbsenceIntervalInSeconds * 1000); _monitoringTimer.Elapsed += MonitoringTimer_Elapsed; _monitoringTimer.Start(); _messageAbsenceDetectionRule = messageAbsenceDetectionRule; _logMessageConfig = analyzerConfig.LogMessages.FirstOrDefault(lm => lm != null && messageAbsenceDetectionRule.LogMessageID == lm.ID); } }
/// <summary> /// returns whether a log message matches a specific message config. /// </summary> /// <param name="logMessageConfig"></param> /// <param name="logMessage"></param> /// <returns></returns> public static bool DoesMatch(this LogMessageConfig logMessageConfig, LogMessage logMessage) { bool doesMatch = true; logMessageConfig.LogMessageParameters.ToList() .ForEach(lm => { if (doesMatch) { switch (lm.FilterParameter) { case LogMessageParameters.Message: doesMatch = DoesMessageMatch(lm.FilterValue, logMessage.Message, lm.TextCompareType); break; case LogMessageParameters.Level: doesMatch = logMessage.LogLevel == (LogLevels)Enum.Parse(typeof(LogLevels), lm.FilterValue); break; } } }); return(doesMatch); }
private static LogMessageConfig[] GetLogMessageConfigs() { LogMessageConfig[] LogMessages = new LogMessageConfig[6]; LogMessages[0] = new LogMessageConfig { ID = 1, LogMessageParameters = new LogMessageParameter[] { new LogMessageParameter { FilterParameter = LogMessageParameters.Level, FilterValue = LogLevels.Warn.ToString() } , new LogMessageParameter { FilterParameter = LogMessageParameters.Message, FilterValue = "10.0.0.132", TextCompareType = TextCompareTypes.Contains } } }; LogMessages[1] = new LogMessageConfig { ID = 2, LogMessageParameters = new LogMessageParameter[] { new LogMessageParameter { FilterParameter = LogMessageParameters.Level, FilterValue = LogLevels.Info.ToString() } , new LogMessageParameter { FilterParameter = LogMessageParameters.Message, FilterValue = "10.0.0.154", TextCompareType = TextCompareTypes.Contains } } }; LogMessages[2] = new LogMessageConfig { ID = 3, LogMessageParameters = new LogMessageParameter[] { new LogMessageParameter { FilterParameter = LogMessageParameters.Level, FilterValue = LogLevels.Debug.ToString() } , new LogMessageParameter { FilterParameter = LogMessageParameters.Message, FilterValue = "10.0.0.196", TextCompareType = TextCompareTypes.Contains } } }; LogMessages[3] = new LogMessageConfig { ID = 4, LogMessageParameters = new LogMessageParameter[] { new LogMessageParameter { FilterParameter = LogMessageParameters.Level, FilterValue = LogLevels.Info.ToString() } , new LogMessageParameter { FilterParameter = LogMessageParameters.Message, FilterValue = "10.0.0.82", TextCompareType = TextCompareTypes.Contains } } }; LogMessages[4] = new LogMessageConfig { ID = 5, LogMessageParameters = new LogMessageParameter[] { new LogMessageParameter { FilterParameter = LogMessageParameters.Tags, FilterValue = "Clothes" } } }; LogMessages[5] = new LogMessageConfig { ID = 6, LogMessageParameters = new LogMessageParameter[] { new LogMessageParameter { FilterParameter = LogMessageParameters.Message, FilterValue = "New payment", TextCompareType = TextCompareTypes.Contains } } }; return(LogMessages); }
public void Dispose() { _firstMessageConfig = null; _secondMessageConfig = null; }