Add more info to logging for devices which fail ping checks

Change-Id: Ia287753734164814169475b625772499300e8a09
This commit is contained in:
Jamie McCarthy 2014-07-08 12:49:39 -04:00
parent 80e7bae30c
commit 2ff2fbb1a3
6 changed files with 19 additions and 17 deletions

View File

@ -19,10 +19,10 @@ known_drivers = {
class AlertDriver(object):
def send_alert(self, message, device_id):
def send_alert(self, message, device_id, device_ip, device_name, device_tenant):
raise NotImplementedError()
def send_delete(self, message, device_id):
def send_delete(self, message, device_id, device_ip, device_name):
raise NotImplementedError()
def send_node_change(self, message, lbid, degraded):

View File

@ -22,7 +22,7 @@ LOG = log.getLogger(__name__)
class DbDriver(AlertDriver):
def send_alert(self, message, device_id):
def send_alert(self, message, device_id, device_ip, device_name, device_tenant):
with db_session() as session:
device = session.query(Device).\
filter(Device.id == device_id).first()
@ -49,7 +49,7 @@ class DbDriver(AlertDriver):
session.commit()
self._rebuild_device(device_id)
def send_delete(self, message, device_id):
def send_delete(self, message, device_id, device_ip, device_name):
with db_session() as session:
session.query(Device).\
filter(Device.id == device_id).\

View File

@ -30,8 +30,9 @@ class DatadogDriver(AlertDriver):
self.dd_tags = cfg.CONF['admin_api']['datadog_tags']
self.dd_message_tail = cfg.CONF['admin_api']['datadog_message_tail']
def send_alert(self, message, device_id):
title = 'Load balancer failure in {0}'.format(self.dd_env)
def send_alert(self, message, device_id, device_ip, device_name, device_tenant):
title = 'Load balancer failure in {0}: {1} {2} {3} {4}'.format(
self.dd_env, device_id, device_ip, device_name, device_tenant)
text = 'Load balancer failed with message {0} {1}'.format(
message, self.dd_message_tail
)
@ -41,9 +42,9 @@ class DatadogDriver(AlertDriver):
)
LOG.info('Datadog alert response: {0}'.format(resp))
def send_delete(self, message, device_id):
title = 'Load balancer unreachable in {0}'.\
format(self.dd_env)
def send_delete(self, message, device_id, device_ip, device_name):
title = 'Load balancer unreachable in {0}: {1} {2}'.\
format(self.dd_env, device_ip, device_name)
text = 'Load balancer unreachable with message {0} {1}'.format(
message, self.dd_message_tail
)

View File

@ -19,10 +19,10 @@ LOG = log.getLogger(__name__)
class DummyDriver(AlertDriver):
def send_alert(self, message, device_id):
def send_alert(self, message, device_id, device_ip, device_name, device_tenant):
LOG.info('Dummy alert of: {0}'.format(message))
def send_delete(self, message, device_id):
def send_delete(self, message, device_id, device_ip, device_name):
LOG.info('Dummy delete of: {0}'.format(message))
def send_node_change(self, message, lbid, degraded):

View File

@ -109,7 +109,7 @@ class OfflineStats(object):
for lb in failed_nodes:
# Get the current ping count
data = session.query(
Device.id, Device.pingCount).\
Device.id, Device.pingCount, Device.name, Device.floatingIpAddr).\
filter(Device.name == lb).first()
if not data:
@ -142,7 +142,7 @@ class OfflineStats(object):
lb, instance.__class__.__name__
)
)
instance.send_delete(message, data.id)
instance.send_delete(message, data.id, data.floatingIpAddr, data.name)
counter = session.query(Counters).\
filter(Counters.name == 'devices_offline_failed').first()
counter.value += 1

View File

@ -108,8 +108,9 @@ class PingStats(object):
'Load balancer failed\n'
'ID: {0}\n'
'IP: {1}\n'
'tenant: {2}\n'.format(
data.id, data.floatingIpAddr,
'name: {2}\n'
'tenant: {3}\n'.format(
data.id, data.floatingIpAddr, data.name,
data.tenantid
)
)
@ -120,12 +121,12 @@ class PingStats(object):
lb, instance.__class__.__name__
)
)
instance.send_alert(message, data.id)
instance.send_alert(message, data.id, data.floatingIpAddr, data.name, data.tenantid)
session.commit()
def _get_lb(self, lb, session):
lb = session.query(
LoadBalancer.tenantid, Device.floatingIpAddr, Device.id
LoadBalancer.tenantid, Device.floatingIpAddr, Device.id, Device.name
).join(LoadBalancer.devices).\
filter(Device.name == lb).first()