Alarms¶
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.
Setup¶
In order to interact with this feature, you must first retrieve an entity by its ID:
$entity = $service->getEntity('{entityId}');
and then a particular check, about which you can configure alarms:
$check = $entity->getCheck('{checkId}');
For more information about these resource types, please consult the documentation about entities and checks.
Retrieve alarm¶
$alarm = $check->getAlarm('{alarmId}');
Once you have access to a OpenCloud\Monitoring\Resource\Alarm object, these are the attributes you can access:
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¶
$alarm = $check->getAlarm();
$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¶
$alarms = $entity->getAlarms();
foreach ($alarms as $alarm) {
echo $alarm->getId();
}
Update Alarm¶
$alarm->update(array(
'criteria' => 'if (metric["duration"] >= 5) { return new AlarmStatus(OK); } return new AlarmStatus(CRITICAL);'
));
Delete alarm¶
$alarm->delete();