From a Python programming perspective, an event is essentially a dictionary of keyword/value pairs that gets passed up to zenhub to be stored and parsed. A description of the standard fields used in Zenoss can be found in the section titled Event Database Dictionary.
From the user's perspective, the events can be found in either the Event Console or in the Events tab. To view an event's information, click on the magnifying glass icon in the event entry and it will display three tabs: Fields, Details and Log.
The standard keyword and value pairs are presented to the user in the Fields tab of the event. Any non-standard keyword/value pairs are presented in the Details tab. The Log tab is for post-processed events and so won't trouble us for the moment.
There are a few requirements for events:
Event objects need to be persisted in the MySQL database.
On queries from within Zope these queries must use the Zope security mechanisms to allow controlled access to the data.
Events must be constructed outside of a Zope framework as well.
To meet these requirements there are three types of event:
Event
an event that lives outside of a Zope context and can go in and out of MySQL.
ZEvent
event in a Zope context inherits from Event
and has a subset of its fields populated as defined by resultFields
in a getEventList()
query.
ZEventDetail
full event information (all fields, detail, and log)