Пример #1
0
        public static void DbMonitorTest(int timer)
        {
            var db = new DbMonitorModel
            {
                FunctionName    = "Insert Users",
                SlackWebhookUrl = SlackURL,
                TypeOfQuery     = TypeOfQuery.INSERT,
                Timer           = timer
            };

            var monitor = new Monitor().DbMonitor(db);
        }
Пример #2
0
        public static void PostToSlackAsync(DbMonitorModel model)
        {
            string request = ($"Function Name: {model.FunctionName}, Type of Error: {model.TypeOfError}, " +
                              $" Type of Query: {model.TypeOfQuery},  Timer: {model.Timer}");

            string requestJson = $"{{'text': '{request}'}}";

            using (var client = new HttpClient())
            {
                var result = client.PostAsync(model.SlackWebhookUrl,
                                              new StringContent(requestJson, Encoding.UTF8, "application/json")).Result;
                if (result.IsSuccessStatusCode)
                {
                    var    responseContent = result.Content;
                    string resultContent   = responseContent.ReadAsStringAsync().Result;
                    Console.WriteLine(resultContent);
                }
            }
        }
Пример #3
0
        public string DbMonitor(DbMonitorModel monitor)
        {
            var averageQueryTime = Helpers.CheckQueryAverageTime(monitor.TypeOfQuery);
            var warningLevel     = Helpers.DegreeOfError(monitor.Timer, averageQueryTime);

            if (warningLevel == TypeOfError.INFORMATIONAL || averageQueryTime == 0)
            {
                Helpers.WriteToLog(monitor.TypeOfQuery, monitor.Timer);
            }

            PostToSlackAsync(new DbMonitorModel
            {
                TypeOfError     = warningLevel,
                Timer           = monitor.Timer,
                TypeOfQuery     = monitor.TypeOfQuery,
                FunctionName    = monitor.FunctionName,
                SlackWebhookUrl = monitor.SlackWebhookUrl
            });

            return("200");
        }