Ejemplo n.º 1
0
        public TimeDifferenceRuleHandler(int id, TimeDifferenceRule timeDifferenceRule, AnalyzerConfig analyzerConfig)
        {
            RuleID = id;

            _firstMessageConfig = analyzerConfig.GetLogMessageConfig(timeDifferenceRule.FirstLogMessageID);

            _secondMessageConfig = analyzerConfig.GetLogMessageConfig(timeDifferenceRule.SecondLogMessageID);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        public void Dispose()
        {
            _firstMessageConfig = null;

            _secondMessageConfig = null;
        }