File: Alarms.md

package info (click to toggle)
owncloud 7.0.4%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 104,192 kB
  • sloc: php: 403,584; xml: 5,843; perl: 630; cs: 504; sh: 453; sql: 271; python: 221; makefile: 104
file content (56 lines) | stat: -rw-r--r-- 1,848 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Alarms

## Info

Alarms bind alerting rules, entities, and notification plans into a logical unit. Alarms are responsible for determining a state (```OK```, ```WARNING``` or ```CRITICAL```) based on the result of a Check, and executing a notification plan whenever that state changes. You create alerting rules by using the alarm DSL. For information about using the alarm language, refer to the [reference documentation](http://docs.rackspace.com/cm/api/v1.0/cm-devguide/content/alerts-language.html).

## Setup

Alarms are sub-resources of Entities:

```php
$alarmId = 'alAAAA';
$alarm = $check->getAlarm();
```

For more information about working with Checks, please see the [appropriate documentation](Checks.md).

## Attributes

Name|Description|Required?|Method
---|---|---|---
check_id|The ID of the check to alert on.|Required|`getCheckId()`
notification_plan_id|The ID of the notification plan to execute when the state changes.|Optional|`getNotificationPlanId()`
criteria|The alarm DSL for describing alerting conditions and their output states.|Optional|`getCriteria()`
disabled|Disable processing and alerts on this alarm|Optional|`isDisabled()` <`bool`>
label|A friendly label for an alarm.|Optional|`getLabel()`
metadata|Arbitrary key/value pairs.|Optional|`getMetadata()`

## Create Alarm
```php
$alarm->create(array(
	'check_id' => 'chAAAA',
	'criteria' => 'if (metric["duration"] >= 2) { return new AlarmStatus(OK); } return new AlarmStatus(CRITICAL);',
	'notification_plan_id' => 'npAAAAA'
));
```

## List Alarms
```php
$alarms = $entity->getAlarms();

foreach ($alarms as $alarm) {
	echo $alarm->getId();
}
```

## Update and delete Alarm
```php
// Update
$alarm->update(array(
	'criteria' => 'if (metric["duration"] >= 5) { return new AlarmStatus(OK); } return new AlarmStatus(CRITICAL);'
));

// Delete
$alarm->delete();
```