[openstack-dev] [all] how to send messages (and events) to our users
gordon chung
gord at live.ca
Wed Apr 8 13:29:58 UTC 2015
> Yeah, I'd really like to have a schema for Heat events so we can have a
> single event stream and repackage events for different consumption goals
> (metrics, notifications, programmatic interaction, etc).
Keystone and parts of Ceilometer use the CADF schema to build notification messages[1]. you can see example usage in ceilometermiddleware[2] but as an example, it basically builds a notification similar to:
{
'typeURI': 'http: //schemas.dmtf.org/cloud/audit/1.0/event',
'eventTime': '2015-01-30T16: 38: 43.233621',
'target': { # target of event
'typeURI': 'service/storage/object',
'id': 'account',
},
'observer': {
'id': 'target'
},
'eventType': 'activity',
'measurements': [ # measurements if appplicable
{
'metric': {
'metricId': 'openstack: uuid',
'name': 'storage.objects.outgoing.bytes',
'unit': 'B'
},
'result': 28
}
],
'initiator': { # who is triggering event
'typeURI': 'service/security/account/user',
'project_id': None,
'id': 'openstack: 288f6260-bf37-4737-a178-5038c84ba244'
},
'action': 'read',
'outcome': 'success',
'id': 'openstack: 69972bb6-14dd-46e4-bdaf-3148014363dc'
}
a few of the fields are generated if not given. i just mention this because i've found it immensely easier as a consumer to work off a consistent format.
[1] http://docs.openstack.org/developer/pycadf/
[2] https://github.com/openstack/ceilometermiddleware/blob/master/ceilometermiddleware/swift.py#L198-L227
cheers,
gord
More information about the OpenStack-dev
mailing list