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();