Skip to content

Commit

Permalink
Merged log brok alerts and other alerts + fixed #6
Browse files Browse the repository at this point in the history
  • Loading branch information
aviau committed Aug 7, 2014
1 parent b9aaa04 commit 2b6ec3c
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
13 changes: 10 additions & 3 deletions module/module.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def get_state_update_points(data, name):
#data['max_check_attempts']
data['output']
]],
"name": "%s._events_.alerts" % name,
"name": "%s._events_.ALERT" % name,
"columns": [
"time",
"state",
Expand Down Expand Up @@ -236,9 +236,16 @@ def manage_log_brok(self, b):
if len(event) > 0:
# include service_desc in the table name if present
if 'service_desc' in event and event['service_desc'] is not None:
name = "%s.%s._events_.%s" % (event['hostname'], event['service_desc'], event['event_type'])
name = "%s.%s._events_.%s" % (
self.illegal_char.sub('_', event['hostname']),
self.illegal_char.sub('_', event['service_desc']),
event['event_type']
)
else:
name = "%s._events_.%s" % (event['hostname'], event['event_type'])
name = "%s._events_.%s" % (
self.illegal_char.sub('_', event['hostname']),
event['event_type']
)

point = {
"points": [[]],
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "mod-influxdb",
"types": ["module"],
"version": "0.4",
"version": "0.5",
"homepage": "https://github.com/savoirfairelinux/mod-influxdb",
"author": "Alexandre Viau",
"description": "Export host and service performance data and events to InfluxDB",
Expand Down
15 changes: 13 additions & 2 deletions test/test_InfluxdbBroker.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def test_get_state_update_points(self):
result = InfluxdbBroker.get_state_update_points(data, name)
expected = [
{'points': [[1403618279, 'WARNING', 'HARD', 'BOB IS NOT HAPPY']],
'name': 'testname._events_.alerts',
'name': 'testname._events_.ALERT',
'columns': ['time', 'state', 'state_type', 'output']}
]
self.assertEqual(expected, result)
Expand All @@ -101,7 +101,7 @@ def test_get_state_update_points(self):
result = InfluxdbBroker.get_state_update_points(data, name)
expected = [
{'points': [[1403618279, 'WARNING', 'SOFT', 'BOB IS NOT HAPPY']],
'name': 'testname._events_.alerts',
'name': 'testname._events_.ALERT',
'columns': ['time', 'state', 'state_type', 'output']}
]
self.assertEqual(expected, result)
Expand Down Expand Up @@ -229,4 +229,15 @@ def test_manage_log_brok(self):
point = broker.buffer[0]
self.assertEqual(point['name'], 'localhost.check-ssh._events_.NOTIFICATION')

def test_log_brok_illegal_char(self):
data = {
'log': '[1329144231] SERVICE ALERT: www.cibc.com;www.cibc.com;WARNING;HARD;4;WARNING - load average: 5.04, 4.67, 5.04'
}
brok = Brok('log', data)
brok.prepare()
broker = InfluxdbBroker(self.basic_modconf)
broker.manage_log_brok(brok)
point = broker.buffer[0]
self.assertEqual(point['name'], 'www_cibc_com.www_cibc_com._events_.ALERT')


0 comments on commit 2b6ec3c

Please sign in to comment.