|
Business rules
|
- Avoid writing business rules for event \[em\_event\] tables, as they do not run in the current default REST URL that is used for event injection.
- Business rules that are written for alert \[em\_alert\] tables must be highly efficient or they may result in performance degradation. Instead of writing a business rule, consider whether it is more appropriate to write a job. An inefficient business rule can cause incident creation for an alert to fail and the alert impact calculation to fail.
- Do not write async business rules for alert tables.
- Business rules must not change the **Category** field on event \[em\_event\] tables.
|
|
Scaling up
|
Check the average event processing time before scaling up event throughput when first starting with Event Management. Do this check after an initial flow of events and all rules are in place. If processing time takes over a few milliseconds per event, determine the cause for the processing slowdown before continuing to scale. Performance duration can be checked in the Performance Statistics \[sa\_performance\_statistics\] table.
|
|
Configure for large-scale environments
|
- Set the **Enable multi node event processing** \(**evt\_mgmt.event\_processor\_enable\_multi\_node**\) property to **Yes**.
Enable multi-node in production environments and set values based on the size of the deployment and expected event rate.
- Set the **Number of scheduled jobs processing events** \(**evt\_mgmt.event\_processor\_job\_count**\) property to `4`.
- If you are sending events from a custom source, verify that events have**Message Key** or **Source**, **Node**, **Type**, and **Resource** data.
|
|
Latency issues for receiving events
|
Check the following settings:- Verify that the **Bucket** field in the event \[em\_event\] table is set to a value that is greater than zero \(**0**\).
- Navigate to **System Scheduler** > **Scheduled Jobs** and search for **- process events\***.
Check that all **- process events\*** jobs exist according to the **Number of scheduled jobs processing events** \(**event\_processor\_job\_count**\) property configuration. Verify that the **State** is **Running** or **Ready**. If the state is **Queued** or **Error**, set the job state to **Ready**.
|
|
Archive events
|
- Avoid changing the default retention time for events.
- To log events for a longer time, create an archive table and a job that copies new events to it. Do this by scheduling a job to regularly back up events \[em\_event\] to a custom table.
- Do not extend table rotation by adding more days.
|