static void TestDuplicateLogDetectionRule(LogsManager.LogsManager logsManager) { logsManager.Info("New payment submitted by John for the amount 100"); System.Threading.Thread.Sleep(3000); logsManager.Info("New payment submitted by John for the amount 30"); logsManager.Info("New payment submitted by John for the amount 100"); }
static void TestTimeDifferenceRule(LogsManager.LogsManager logsManager) { logsManager.Info("10.0.0.154"); logsManager.Warn("10.0.0.154"); logsManager.Warn("10.0.0.132"); logsManager.Warn("10.0.0.er"); logsManager.Warn("10.0.0.er"); logsManager.Debug("10.0.0.196"); logsManager.Info("10.0.0.154"); logsManager.Warn("10.0.0.154"); logsManager.Warn("10.0.0.132"); System.Threading.Thread.Sleep(100); logsManager.Warn("10.0.0.er"); logsManager.Warn("10.0.0.er"); logsManager.Debug("10.0.0.196"); logsManager.Info("10.0.0.154"); logsManager.Warn("10.0.0.154"); logsManager.Warn("10.0.0.132"); logsManager.Warn("10.0.0.er"); logsManager.Warn("10.0.0.er"); }
static void Main(string[] args) { //string configurationFileContent = JsonConvert.SerializeObject(GetAnalyzerConfig(), new Newtonsoft.Json.Converters.StringEnumConverter()); // specify the way you are going to use to send your logs to the analyzer. ILogsSender logsSender = GetLogsSender(); // initialize the logs managers class that's going to handle incoming logs messages and send them to the analyzer // using the logs sender. LogsManager.LogsManager logsManager = new LogsManager.LogsManager(IsLogsAnalyzerEnabled, logsSender); logsManager.Initialize(); // the following are some test for analyzer rules. Task.Delay(12000).ContinueWith((t) => { TestFilterOnlyRule(logsManager); Task.Run(() => TestTimeDifferenceRule(logsManager)); Task.Run(() => TestLogFrequencyRule(logsManager)); Task.Run(() => TestAggregateFunctionRule(logsManager)); Task.Run(() => TestDuplicateLogDetectionRule(logsManager)); }); Console.ReadLine(); }
static void TestAggregateFunctionRule(LogsManager.LogsManager logsManager) { logsManager.Info("New credit card payment", tags: new string[] { "Clothes", "T-shirt" }, parameters: new KeyValuePair <string, string>("Amount", "30")); logsManager.Info("New cash payment", tags: new string[] { "Clothes", "Shoes" }, parameters: new KeyValuePair <string, string>("Amount", "40")); logsManager.Info("New credit card payment", tags: new string[] { "Clothes", "Jacket" }, parameters: new KeyValuePair <string, string>("Amount", "90")); logsManager.Info("Gift card", tags: new string[] { "Clothes", "Gloves" }, parameters: new KeyValuePair <string, string>("Amount", "10")); logsManager.Info("New credit card payment", tags: new string[] { "Clothes", "T-shirt" }, parameters: new KeyValuePair <string, string>("Amount", "5")); }
static void TestFilterOnlyRule(LogsManager.LogsManager logsManager) { for (int i = 0; i < 5000; i++) { logsManager.Warn("10.0.0.132"); logsManager.Info("New payment"); } }
static void TestLogFrequencyRule(LogsManager.LogsManager logsManager) { logsManager.Info("10.0.0.82"); logsManager.Info("10.0.0.82"); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); logsManager.Info("10.0.0.82"); logsManager.Info("10.0.0.82"); logsManager.Info("10.0.0.82"); System.Threading.Thread.Sleep(500); logsManager.Info("10.0.0.82"); logsManager.Info("10.0.0.82"); logsManager.Info("10.0.0.82"); System.Threading.Thread.Sleep(500); logsManager.Warn("10.0.0.82"); logsManager.Warn("10.0.0.82"); logsManager.Warn("10.0.0.82"); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); logsManager.Warn("10.0.0.82"); logsManager.Warn("10.0.0.82"); logsManager.Info("10.0.0.79"); System.Threading.Thread.Sleep(500); logsManager.Warn("10.0.0.82"); logsManager.Warn("10.0.0.82"); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(500); logsManager.Warn("10.0.0.82"); logsManager.Warn("10.0.0.82"); }