Skip to content

Commit

Permalink
Merge "Add high/critical disk usage alarms" into R3.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Nov 9, 2016
2 parents afd6b99 + 792d925 commit 5a463d8
Show file tree
Hide file tree
Showing 2 changed files with 179 additions and 12 deletions.
43 changes: 40 additions & 3 deletions src/config/utils/contrail_alarm.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,44 @@
"and_list": [
{
"operand1": "NodeStatus.disk_usage_info.*.percentage_partition_space_used",
"operation": ">=",
"operation": "range",
"operand2": {
"json_value": "[70, 90]"
},
"variables":
["NodeStatus.disk_usage_info.__key"]
}
]
}
]
},
"alarm_severity": 1,
"fq_name": [
"default-global-system-config",
"disk-usage-high"
],
"id_perms": {
"description": "Disk usage crosses high threshold limit."
},
"parent_type": "global-system-config",
"uve_keys": {
"uve_key": [
"analytics-node",
"config-node",
"control-node",
"database-node",
"vrouter"
]
}
},
{
"alarm_rules": {
"or_list": [
{
"and_list": [
{
"operand1": "NodeStatus.disk_usage_info.*.percentage_partition_space_used",
"operation": ">",
"operand2": {
"json_value": "90"
},
Expand All @@ -165,10 +202,10 @@
"alarm_severity": 0,
"fq_name": [
"default-global-system-config",
"disk-usage"
"disk-usage-critical"
],
"id_perms": {
"description": "Disk Usage crosses a threshold."
"description": "Disk usage crosses critical threshold limit."
},
"parent_type": "global-system-config",
"uve_keys": {
Expand Down
148 changes: 139 additions & 9 deletions src/opserver/test/test_alarm_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@ def test_alarm_incorrect_config(self):
self._verify(tests, alarm_name="conf-incorrect")
# end test_alarm_incorrect_config

def test_alarm_disk_usage(self):
def test_alarm_disk_usage_high(self):
tests = [
TestCase(
name='NodeStatus == null',
Expand All @@ -553,7 +553,7 @@ def test_alarm_disk_usage(self):
),
TestCase(
name='NodeStatus.disk_usage_info.*.'
'percentage_partition_space_used < threshold',
'percentage_partition_space_used range [70, 90] - no match',
input=TestInput(uve_key='ObjectDatabaseInfo:host1',
uve_data={
'NodeStatus': {
Expand All @@ -572,22 +572,152 @@ def test_alarm_disk_usage(self):
),
TestCase(
name='NodeStatus.disk_usage_info.*.'
'percentage_partition_space_used >= threshold',
'percentage_partition_space_used range [70, 90]',
input=TestInput(uve_key='ObjectDatabaseInfo:host1',
uve_data={
'NodeStatus': {
'disk_usage_info': {
'dev/sda1': {
'partition_space_available_1k': 2097152,
'partition_space_used_1k': 8388608,
'partition_type': 'ext2',
'percentage_partition_space_used': 80
},
'dev/sda2': {
'partition_space_available_1k': 524288,
'partition_space_used_1k': 9961472,
'partition_type': 'ext2',
'percentage_partition_space_used': 95
},
'dev/sda3': {
'partition_space_available_1k': 1048576,
'partition_space_used_1k': 9437184,
'partition_type': 'ext4',
'percentage_partition_space_used': 90
},
'dev/sda4': {
'partition_space_available_1k': 3145728,
'partition_space_used_1k': 7340032,
'partition_type': 'ext4',
'percentage_partition_space_used': 70
},
'dev/sda5': {
'partition_space_available_1k': 100663296,
'partition_space_used_1k': 33554432,
'partition_type': 'ext2',
'percentage_partition_space_used': 25
}
}
}
}
),
output=TestOutput(or_list=[
{
'and_list': [
{
'condition': {
'operand1': 'NodeStatus.disk_usage_info'
'.*.percentage_partition_space_used',
'operand2': {
'json_value': '[70, 90]'
},
'operation': 'range',
'variables': [
'NodeStatus.disk_usage_info.__key'
]
},
'match': [
{
'json_operand1_val': '90',
'json_variables': {
'NodeStatus.disk_usage_info.__key':
'"dev/sda3"'
}
},
{
'json_operand1_val': '80',
'json_variables': {
'NodeStatus.disk_usage_info.__key':
'"dev/sda1"'
}
},
{
'json_operand1_val': '70',
'json_variables': {
'NodeStatus.disk_usage_info.__key':
'"dev/sda4"'
}
}
]
}
]
}
])
)
]
self._verify(tests, alarm_name="disk-usage-high")
# end test_alarm_disk_usage_high

def test_alarm_disk_usage_critical(self):
tests = [
TestCase(
name='NodeStatus == null',
input=TestInput(uve_key='ObjectDatabaseInfo:host1',
uve_data={}),
output=TestOutput(or_list=None)
),
TestCase(
name='NodeStatus.disk_usage_info == null',
input=TestInput(uve_key='ObjectDatabaseInfo:host1',
uve_data={
'NodeStatus': {}
}
),
output=TestOutput(or_list=None)
),
TestCase(
name='NodeStatus.disk_usage_info.*.'
'percentage_partition_space_used > 90 - no match',
input=TestInput(uve_key='ObjectDatabaseInfo:host1',
uve_data={
'NodeStatus': {
'disk_usage_info': {
'dev/sda1': {
'partition_space_available_1k': 100663296,
'partition_space_used_1k': 33554432,
'partition_type': 'ext2',
'percentage_partition_space_used': 25
}
}
}
}
),
output=TestOutput(or_list=None)
),
TestCase(
name='NodeStatus.disk_usage_info.*.'
'percentage_partition_space_used > 90',
input=TestInput(uve_key='ObjectDatabaseInfo:host1',
uve_data={
'NodeStatus': {
'disk_usage_info': {
'dev/sda1': {
'partition_space_available_1k': 2097152,
'partition_space_used_1k': 8388608,
'partition_type': 'ext2',
'percentage_partition_space_used': 80
},
'dev/sda2': {
'partition_space_available_1k': 60397978,
'partition_space_used_1k': 73819750,
'partition_type': 'ext4',
'partition_space_available_1k': 524288,
'partition_space_used_1k': 9961472,
'partition_type': 'ext2',
'percentage_partition_space_used': 95
},
'dev/sda3': {
'partition_space_available_1k': 1048576,
'partition_space_used_1k': 9437184,
'partition_type': 'ext4',
'percentage_partition_space_used': 90
}
}
}
Expand All @@ -603,7 +733,7 @@ def test_alarm_disk_usage(self):
'operand2': {
'json_value': '90'
},
'operation': '>=',
'operation': '>',
'variables': [
'NodeStatus.disk_usage_info.__key'
]
Expand All @@ -623,8 +753,8 @@ def test_alarm_disk_usage(self):
])
)
]
self._verify(tests, alarm_name="disk-usage")
# end test_alarm_disk_usage
self._verify(tests, alarm_name="disk-usage-critical")
# end test_alarm_disk_usage_critical

def test_alarm_partial_sysinfo(self):
tests = [
Expand Down

0 comments on commit 5a463d8

Please sign in to comment.