Aodh allows users to define alarms which can be evaluated based on events passed from other OpenStack services. The events can be emitted when the resources from other OpenStack services have been updated, created or deleted, such as ‘compute.instance.reboot.end’, ‘scheduler.select_destinations.end’. When creating an alarm with type of “event”, an event_type can be specified to identify the type of evernt that will trigger the alarm. The event_type field support fuzzy matching with wildcard. Additionally, users can also specify query conditions to filter specific events used to trigger the alarm.
This feature was implemented with proposal event-alarm.
When creating an alarm of “event” type, the “event_rule” need to be specified, which includes an “event_type” field and a “query” field, the “event_type” allow users to specify a specific event type used to match the incoming events when evaluating alarm, and the “query” field includes a list of query conditions used to filter specific events when evaluating the alarm.
The following is an example of event alarm rule:
"event_rule": {
"event_type": "compute.instance.update",
"query" : [
{
"field" : "traits.instance_id",
"type" : "string",
"value" : "153462d0-a9b8-4b5b-8175-9e4b05e9b856",
"op" : "eq",
},
{
"field" : "traits.state",
"type" : "string",
"value" : "error",
"op" : "eq",
},
]
}
To enable this functionality, config the Ceilometer to be able to publish events to the queue the aodh-listener service listen on. The event_alarm_topic config option of Aodh identify which messaging topic the aodh-listener on, the default value is “alarm.all”. In Ceilometer side, a publisher of notifier type need to be configured in the event pipeline config file(event_pipeline.yaml as default), the notifier should be with a messaging topic same as the event_alarm_topic option defined. For an example:
---
sources:
- name: event_source
events:
- "*"
sinks:
- event_sink
sinks:
- name: event_sink
transformers:
publishers:
- notifier://
- notifier://?topic=alarm.all