Fixes to drivers
Change-Id: I3a437a05861e5bbad94eaf8da44b7b3a58e159c0
This commit is contained in:
parent
184fe83639
commit
54eea9bfe8
@ -13,14 +13,15 @@
|
|||||||
|
|
||||||
known_drivers = {
|
known_drivers = {
|
||||||
'dummy': 'libra.statsd.drivers.dummy.driver.DummyDriver',
|
'dummy': 'libra.statsd.drivers.dummy.driver.DummyDriver',
|
||||||
'datadog': 'libra.statsd.driver.dummy.driver.DatadogDriver',
|
'datadog': 'libra.statsd.drivers.datadog.driver.DatadogDriver',
|
||||||
'hp_rest': 'libra.statsd.driver.hp_rest.driver.HPRestDriver'
|
'hp_rest': 'libra.statsd.drivers.hp_rest.driver.HPRestDriver'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class AlertDriver(object):
|
class AlertDriver(object):
|
||||||
def __init__(self, logger):
|
def __init__(self, logger, args):
|
||||||
self.logger = logger
|
self.logger = logger
|
||||||
|
self.args = args
|
||||||
|
|
||||||
def send_alert(self, message, device_id):
|
def send_alert(self, message, device_id):
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
@ -16,12 +16,15 @@ from dogapi import dog_http_api as api
|
|||||||
|
|
||||||
|
|
||||||
class DatadogDriver(AlertDriver):
|
class DatadogDriver(AlertDriver):
|
||||||
def send_alert(self, message):
|
def send_alert(self, message, device_id):
|
||||||
api.api_key = self.args.datadog_apikey
|
api.api_key = self.args.datadog_api_key
|
||||||
api.application_key = self.args.datadog_appkey
|
api.application_key = self.args.datadog_app_key
|
||||||
title = 'Load balancer failure'
|
title = 'Load balancer failure'
|
||||||
text = 'Load balancer failed with message {0} {1}'.format(
|
text = 'Load balancer failed with message {0} {1}'.format(
|
||||||
message, self.args.datadog_message_tail
|
message, self.args.datadog_message_tail
|
||||||
)
|
)
|
||||||
tags = self.args.datadog_tags.split()
|
tags = self.args.datadog_tags.split()
|
||||||
api.event_with_response(title, text, tags=tags, alert_type='error')
|
resp = api.event_with_response(
|
||||||
|
title, text, tags=tags, alert_type='error'
|
||||||
|
)
|
||||||
|
self.logger.info('Datadog alert response: {0}'.format(resp))
|
||||||
|
@ -102,7 +102,12 @@ class Sched(object):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
for driver in self.drivers:
|
for driver in self.drivers:
|
||||||
instance = driver(self.logger)
|
instance = driver(self.logger, self.args)
|
||||||
|
self.logger.info(
|
||||||
|
'Sending failure of {0} to {1}'.format(
|
||||||
|
node, instance.__class__.__name__
|
||||||
|
)
|
||||||
|
)
|
||||||
instance.send_alert(message, data['id'])
|
instance.send_alert(message, data['id'])
|
||||||
|
|
||||||
def _get_node(self, node, node_list):
|
def _get_node(self, node, node_list):
|
||||||
|
@ -5,3 +5,4 @@ python-daemon>=1.6
|
|||||||
python_novaclient>=2.11.1
|
python_novaclient>=2.11.1
|
||||||
python_swiftclient>=1.3.0
|
python_swiftclient>=1.3.0
|
||||||
requests>=1.0.0
|
requests>=1.0.0
|
||||||
|
dogapi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user