Event caching
During probe rules processing, the OMi tokens involved in event correlation and deduplication must be present in every iteration.
An OprEvent
object has
all the tokens required in the rules computation. However, an OprEventChange
object
never contains all the tokens, and so the probe must request from
OMi the full message (OprEvent
object) of the original
alert for each OprEventChange
object. The HTTP operation
would amount to substantial overhead if too frequently occur. To minimize
the processing overhead, the probe stores the selected fields from
the OprEvent
object in the Event Cache for future
reference to complement each OprEventChange
object.
For the probe to manage the Event Cache using the following example configuration, specify the file holding these values in the EventCacheConfig probe property.
Field with default value |
Description |
---|---|
|
The maximum number of nodes in the cache. |
|
The number of retry to request |
|
The interval of an in-waiting event node. |
|
The interval of an |
|
To extend node duration if the node ever receives update. |
|
The selected fields from |
For an OprEventChange
object
without a cached OprEvent
node for reference, it
enters the Event Cache as an in-waiting event node anticipating the
full message returned from the probe’s request to the OMi.
- If the full message is not obtained within the interval of
MSG_WAIT_TIMEOUT
, then the node is removed and theOprEventChange
is sent to the probe rules as a discarded event as with a$Discarded
token. - If the full message is obtained within the interval of
MSG_WAIT_TIMEOUT
, then the in-waiting node becomes anOprEvent
node with a fullNODE_DURATION
.
To maintain data consistency of the OprEvent
nodes
in the cache, whenever encountering its corresponding OprEventChange
or OprEvent
,
the cached fields common to the object’s fields will get the
update. In return, the OprEventChange
is complemented
with the cached data, and assigned an additional $Complemented
token
for the probe rules processing.
An OprEvent
node
will be removed when its stay in the cache has reached the interval
of NODE_DURATION
. When RENEW_DURATION
is
on, a node’s duration will be extended with NODE_DURATION
from
the moment of each update.
When the Event Cache is full, the
probe resorts to requesting full messages upon OprEventChange
objects
without the corresponding cached OprEvent
. It is
important not to configure NODE_DURATION
too large
and MAX_NODES
too small. The longer a node to stay
in the cache, the remaining free space will diminish in a higher rate
as there is growth of new nodes.
Event Cache data is not written to or read from a persistent file, the data will disappear after the probe shuts down as there is no practical purpose to keep a backup.
Because
event correlation and deduplication are determined by @Identifier
and @Type
in
ObjectServer alerts.status table, which OMi fields to be cached must
be consistent with the fields that are used in the probe rules to
calculate @Identifier
and @Type
.