def __init__(self, config=None): Handler.__init__(self, config) logging.debug("Initialized Whale Monitoring handler.") if whaleapi is None: logging.error("Failed to load whaleapi module.") return self.api_token = self.config.get('api_token', '') self.api_host = self.config.get('api_host', '') self.queue_size = self.config.get('queue_size', 20) whaleapi.initialize(self.api_token, self.api_host) self.api = whaleapi.api self.queue = deque([])
def handle(self): whaleapi.initialize(self.api_token(), self.api_host()) timestamp = self.event.get('timestamp') hostname = self.event['client'].get('name') event_status = self.event['check'].get('status', 2) check = self.event['check'].get('name') text = self.event['check'].get('output') if timestamp is None or hostname is None or check is None or text is None: return self.bail('Could not send event to Whale Monitoring. Some data is missing.') whaleapi.api.Event.send( title='%s %s on %s' % (self.whale_alert_type(event_status).title(), check, str(hostname).lower()), text=text, timestamp=converter.epoch_to_iso_8601(timestamp), host=hostname, alert_type=self.whale_alert_type(event_status), aggregation_key=str('sensu.%s.%s' % (hostname, check)).lower(), source_type_name='sensu' )