def test_loadbalancer(self): """ testing scaling up and down threads """ # scaling up dummy_checks = 1000 self.create_dummy_checks(dummy_checks, 60) self.config.set("Checker", "latency_spawn_thread", "1") self.config.set("Checker", "latency_calculate", "5") self.config.set("Checker", "spawn_thread_max", "2") self.config.set("Checker", "delete_thread_max", "30") self.monitor_engine = checker.start_checker( self.config, self.config.get("Checker", "test_db"), 1, 10000, 2 ) time.sleep(3) last_threads = self.monitor_engine['active_monitor_threads'] time.sleep(30) threads = self.monitor_engine['active_monitor_threads'] self.assertTrue(threads > last_threads) last_threads = threads time.sleep(30) threads = self.monitor_engine['active_monitor_threads'] self.assertTrue(threads > last_threads) self.monitor_engine.shutdown() # scaling down self.delete_dummy_checks(dummy_checks - 3) self.config.set("Checker", "latency_spawn_thread", "1") self.config.set("Checker", "latency_calculate", "5") self.config.set("Checker", "spawn_thread_max", "10") self.config.set("Checker", "delete_thread_max", "2") self.monitor_engine = checker.start_checker( self.config, self.config.get("Checker", "test_db"), 100, 10000, 2 ) time.sleep(3) last_threads = self.monitor_engine['active_monitor_threads'] time.sleep(30) threads = self.monitor_engine['active_monitor_threads'] self.assertTrue(threads < last_threads) last_threads = threads time.sleep(30) threads = self.monitor_engine['active_monitor_threads'] self.assertTrue(threads < last_threads)
def test_spike_distribution(self): """ testing check spike distribution """ self.create_dummy_checks(1000, 60) self.monitor_engine = checker.start_checker( self.config, self.config.get("Checker", "test_db"), 10, 10000, 2 ) time.sleep(5) chunk, total = self.monitor_engine['feeder_throttle'] self.assertTrue(chunk < total) old_total = total time.sleep(5) chunk, total = self.monitor_engine['feeder_throttle'] self.assertTrue(chunk < total) self.assertTrue(total < old_total) old_total = total time.sleep(5) chunk, total = self.monitor_engine['feeder_throttle'] self.assertTrue(chunk < total) self.assertTrue(total < old_total) old_total = total
def test_dns(self): """ testing pyDNS ip resolution """ domain = ("medtelligent.com", "174.36.81.144") cursor = self.connection.cursor() cursor.execute(""" INSERT INTO LocalSchedule ( global_schedule_id, monitor_point_id, port, service_type, frequency, next_check_time, fqdn ) VALUES ( 1, 1, 80, "icmp.ping", 10, NOW(), "%s" ) """ % domain[0]) cursor.close() self.connection.commit() self.monitor_engine = checker.start_checker( self.config, self.config.get("Checker", "test_db"), 10, 10000, 2 ) time.sleep(5) self.assertEqual(self.monitor_engine.get('last_resolved_dns'), domain)