def main(): """Start monitord""" manual_ping_targets = {} service = MagmaService('monitord', mconfigs_pb2.MonitorD()) # Optionally pipe errors to Sentry sentry_init(service_name=service.name, sentry_mconfig=service.shared_mconfig.sentry_config) # Monitoring thread loop mtr_interface = load_service_config("monitord")["mtr_interface"] # Add manual IP targets from yml file try: targets = load_service_config("monitord")["ping_targets"] for target, data in targets.items(): ip_string = data.get("ip") if ip_string: ip = IPAddress( version=IPAddress.IPV4, address=str.encode(ip_string), ) logging.debug( 'Adding %s:%s:%s to ping target', target, ip.version, ip.address, ) manual_ping_targets[target] = ip except KeyError: logging.warning("No ping targets configured") cpe_monitor = CpeMonitoringModule() cpe_monitor.set_manually_configured_targets(manual_ping_targets) icmp_monitor = ICMPJob( cpe_monitor, service.mconfig.polling_interval, service.loop, mtr_interface, ) icmp_monitor.start() # Register a callback function for GetOperationalStates service.register_operational_states_callback( lambda: _get_serialized_subscriber_states(cpe_monitor), ) # Run the service loop service.run() # Cleanup the service service.close()
def main(): """ main() for monitord service""" service = MagmaService('monitord', mconfigs_pb2.MonitorD()) # Monitoring thread loop icmp_monitor = ICMPMonitoring(service.mconfig.polling_interval, service.loop) icmp_monitor.start() # Register a callback function for GetOperationalStates service.register_operational_states_callback( lambda: serialize_subscriber_states(icmp_monitor.get_subscriber_state( ))) # Run the service loop service.run() # Cleanup the service service.close()
def main(): """ main() for monitord service""" manual_ping_targets = {} service = MagmaService('monitord', mconfigs_pb2.MonitorD()) # Optionally pipe errors to Sentry sentry_init() # Monitoring thread loop mtr_interface = load_service_config("monitord")["mtr_interface"] # Add manual IP targets from yml file try: targets = load_service_config("monitord")["ping_targets"] for target, data in targets.items(): if "ip" in data: ip = IPAddress(version=IPAddress.IPV4, address=str.encode(data["ip"])) logging.debug( 'Adding {}:{}:{} to ping target'.format(target, ip.version, ip.address)) manual_ping_targets[target] = ip except KeyError: logging.warning("No ping targets configured") cpe_monitor = CpeMonitoringModule() cpe_monitor.set_manually_configured_targets(manual_ping_targets) icmp_monitor = ICMPMonitoring(cpe_monitor, service.mconfig.polling_interval, service.loop, mtr_interface) icmp_monitor.start() # Register a callback function for GetOperationalStates service.register_operational_states_callback( _get_serialized_subscriber_states(cpe_monitor)) # Run the service loop service.run() # Cleanup the service service.close()