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([])
Exemple #2
0
    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'
        )