Пример #1
0
        static int Main(string[] args)
        {
            QueueConfig queueConfigSection = ConfigurationManager.GetSection("QueueConfig") as QueueConfig;
            int failCount = 0;
            QueueConfigurationCollection queueConfig = new QueueConfigurationCollection();

            try
            {
                queueConfig = queueConfigSection.QueueConfiguration;
            }
            catch (NullReferenceException)
            {
                var configFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
                Console.WriteLine("Configuration file '{0}' not found or invalid. See https://github.com/mukaibot/servicebus-monitoring for instructions", configFile);
                Environment.Exit(1);
            }

            failCount = ProcessQueues(failCount, queueConfig);

            if (failCount != 0)
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
Пример #2
0
        private static int ProcessQueues(int failCount, QueueConfigurationCollection queueConfig)
        {
            foreach (QueueConfiguration queue in queueConfig)
            {
                Console.WriteLine("OK: Trying to get message count from {0} in ServiceBus namespace {1}", queue.QueueName, queue.SBNamespace);
                var threshold = queue.Threshold;
                var counter = new SBMessageCounter(queue.SBNamespace, queue.QueueName, queue.SASKeyName, queue.SASKey);
                if (counter.MessageCount <= threshold)
                {
                    Console.WriteLine("OK: MessageCount for Queue {0} is {1}, threshold {2}", queue.QueueName, counter.MessageCount, threshold);
                }
                else
                {
                    failCount += 1;
                    var alerterTypeFromConfig = ConfigurationManager.AppSettings["AlerterType"].ToString() ?? "null";
                    Console.WriteLine("FAIL: MessageCount for Queue {0} is {1}, threshold {2}. Sending alert via {3}", queue.QueueName, counter.MessageCount, threshold, alerterTypeFromConfig);
                    if (alerterTypeFromConfig != "null")
                    {
                        SendAlert(queue, counter, alerterTypeFromConfig);
                    }
                }
            }

            return failCount;
        }