From 9a3740dd7ba95bf36dfa15a29aeccd3dd32507b4 Mon Sep 17 00:00:00 2001 From: bhaveshdell <55215495+bhaveshdell@users.noreply.github.com> Date: Fri, 30 Jun 2023 12:09:32 -0700 Subject: [PATCH 1/5] Updates. Integrate with event producer framework. --- .../event-alarm-framework.md | 281 ++++-------------- doc/event-alarm-framework/eventd-block.png | Bin 0 -> 61643 bytes 2 files changed, 56 insertions(+), 225 deletions(-) create mode 100644 doc/event-alarm-framework/eventd-block.png diff --git a/doc/event-alarm-framework/event-alarm-framework.md b/doc/event-alarm-framework/event-alarm-framework.md index eb475cb6fd..db6f28909f 100644 --- a/doc/event-alarm-framework/event-alarm-framework.md +++ b/doc/event-alarm-framework/event-alarm-framework.md @@ -6,7 +6,6 @@ Event and Alarm Framework # Table of Contents * [Revision](#revision) * [About This Manual](#about-this-manual) - * [Scope](#scope) * [1 Feature Overview](#1-feature-overview) * [1.1 Requirements](#11-requirements) * [1.1.1 Functional Requirements](#111-functional-requirements) @@ -25,12 +24,8 @@ Event and Alarm Framework * [3.1.2.2 Sequence-ID](#3122-sequence-id) * [3.1.3 Alarm Consumer](#313-alarm-consumer) * [3.1.4 Event Receivers](#314-event-receivers) - * [3.1.4.1 syslog](#3141-syslog) - * [3.1.4.2 REST](#3142-rest) - * [3.1.4.3 gNMI](#3143-gnmi) - * [3.1.4.4 System LED](#3144-system-led) - * [3.1.4.5 Event/Alarm flooding](#3145-event/alarm-flooding) - * [3.1.4.6 Eventd continuous restart](#3146-event-continuous-restart) + * [3.1.4.1 System LED](#3144-system-led) + * [3.1.4.2 Event/Alarm flooding](#3145-event/alarm-flooding) * [3.1.5 Event Profile](#315-event-profile) * [3.1.6 CLI](#316-cli) * [3.1.7 Event Table and Alarm Table](#317-event-table-and-alarm-table) @@ -62,19 +57,16 @@ Event and Alarm Framework | 0.3 | 04/18/2022 | Bhavesh | Address review comments | # About this Manual -This document provides general information on the implementation and functionality of Event and Alarm Framework in SONiC. +This document provides a high level design of event and alarm management. It extends the existing event producer framework. +Refer for the current event framework. https://github.com/sonic-net/SONiC/blob/master/doc/event-alarm-framework/events-producer.md +Note: Wherever CLI is specified, it is the KLISH cli that is referred - SONiC native (CLICK) CLI is not updated for this feature. -Note: Wherever CLI is specified, it is the CLISH cli that is referred - SONiC native (CLICK) CLI is not updated for this feature. - -# Scope -This document describes the high-level design of Event and Alarm Framework. -It is not in the scope of the framework to update ANY of the applications to raise events and alarms. # 1 Feature Overview -The Event and Alarm Framework feature provides a centralized framework for applications in SONiC to raise notifications and store them for north bound interfaces to listen and fetch to monitor the device. +The Event and Alarm Framework feature provides a centralized framework for applications in SONiC to raise notifications and store them for north bound interfaces for monitoring the device. -Events and Alarms are notifications to indicate a change in the state of the system that operator may be interested in. +Events and alarms are notifications to indicate a change in the state of the system that operator may be interested in. Such a change has an important metric called *severity* to indicate how critical it is to the health of the system. * Events @@ -102,7 +94,7 @@ Such a change has an important metric called *severity* to indicate how critical The set of alarms and their severities are an indication to health of various applications of the system and System LED can be deduced from alarms. An acknowledged alarm means that operator is aware of the condition so, acknowledged alarm will be taken out of consideration. -Both events and alarms get recorded in a new DB called EVENT DB in a new redis instance. +Both events and alarms get recorded in redis DB. 1. Event Table @@ -166,7 +158,7 @@ Template for event profile is as below: ] } ``` -Event Profiles only contains declarations of events and their characteristics. There has to be an application to raise these events using eventnotify API. +Event Profiles only contains declarations of events and their characteristics. The framework maintains default event profile at /etc/evprofile/default.json. Operator can download default event profile to a remote host. @@ -175,14 +167,11 @@ This modified file can then be uploaded to the device to /etc/evprofile/. Operator can select any of these custom event profiles to change default properties of events. The selected profile is persistent across reboots and will be in effect until operator selects either default or another custom profile. -In addition to storing events in DB, framework forwards log messages corresponding to all the events to syslog. -Syslog message displays the type (ALARM or EVENT), action (RAISE, CLEAR, ACKNOWLEDGE or UNACKNOWLEDGE) - when the message corresponds to an event of an alarm, name of the event and detailed message. - -gNMI clients can subscribe to receive events as they are raised. Subscribing through REST is being evaluated. +gNMI clients can subscribe to receive events as they are raised. CLI and REST/gNMI clients can query either table with filters - based on severity, delta based on timestamp, sequence-id etc., -Application owners need to identify various conditions that would be of interest to the operator and use the framework to raise events/alarms. +Application owners need to identify various conditions that would be of interest to the operator and use the framework to publish events/alarms. ## 1.1 Requirements @@ -191,65 +180,60 @@ Application owners need to identify various conditions that would be of interest | ID | Requirement | Comment | | :--- | :---- | :--- | -| 1 | Provide API via library for apps to publish events | | -| 2 | Provide API via library for apps to publish alarms | | -| 3 | Event Infra to write formatted syslog messages corresponding to all events to Syslog. | | -| 4 | Event Infra to persist all events and alarms in DB. | | -| 5 | Event Infra to read Event profile ( severity and enable/disable flag ) from a json file. | | -| 6 | Event Infra to read Event table parameters (size and # of days) from a config file. | | -| 7 | NBI interface (gNMI and REST) and CLI | | -| 7.1 | Events | | -| 7.1.1 | Openconfig interface to pull event information. | | -| 7.1.2 | Openconfig interface to pull event summary information. | | +| 1 | Event Infra to persist all events and alarms in DB. | | +| 2 | Event Infra to read Event profile ( severity and enable/disable flag ) from a json file. | | +| 3 | Event Infra to read Event table parameters (size and # of days) from a config file. | | +| 4 | NBI interface (gNMI and REST) and CLI | | +| 5.1 | Events | | +| 5.1.1 | Openconfig interface to pull event information. | | +| 5.1.2 | Openconfig interface to pull event summary information. | | | | Event summary information to contain cumulative counters for: | | | | - Raised-count (events) | | -| 7.1.3 | Openconfig interface to pull events using following filters | | +| 5.1.3 | Openconfig interface to pull events using following filters | | | | - ALL ( pull all events) | | | | - Severity. | | | | - Recent records (eg., last 5 minutes, one hour, one day). | | | | - Records between two timestamps, one timestamp and end, and beginning and a timestamp. | | | | - All records between two Sequence Numbers (incl begin and end) | | -| 7.2 | Alarms | | -| 7.2.1 | Openconfig interface to pull alarm information. | | -| 7.2.2 | Openconfig interface to pull alarm summary information. | | +| 5.2 | Alarms | | +| 5.2.1 | Openconfig interface to pull alarm information. | | +| 5.2.2 | Openconfig interface to pull alarm summary information. | | | | Counters for Total, Critical, Major, Minor, Warning, Acknowledged | | -| 7.2.3 | Openconfig interface to pull alarms using following filters | | +| 5.2.3 | Openconfig interface to pull alarms using following filters | | | | - All (pull all events) | | | | - Severity. | | | | - Recent alarms (eg., last 5 minutes, one hour, one day). | | | | - Records between two timestamps, one timestamp and end, and beginning and a timestamp. | | | | - All records between two Sequence Numbers (incl end and begin) | | -| 7.2.4 | Openconfig interface to acknowledge an alarm. | | -| 8 | CLI commands | | -| 8.1 | show alarm [ detail \| summary \| severity \| timestamp \| recent <5min\|1hr\|1day> \| sequence-number \| all] | | -| 8.2 | show event [ detail \| summary \| severity \| timestamp \| recent <5min\|1hr\|1day> \| sequence-number ] | | -| 8.3 | show event profile | | -| 8.4 | alarm acknowledge | | -| 8.5 | logging server [ log \| event ] | default is 'log' | -| 8.6 | event profile [ default \| name-of-file ] | | -| 9 | gNMI subscription | | -| 9.1 | Subscribe to openconfig Event container and Alarm container. All events and alarms published to gNMI subscribed clients. | | -| 10 | Clear all events | | -| 11 | Any change in open source should be aligned and upstream. | | +| 5.2.4 | Openconfig interface to acknowledge an alarm. | | +| 6 | CLI commands | | +| 6.1 | show alarm [ detail \| summary \| severity \| timestamp \| recent <5min\|1hr\|1day> \| sequence-number \| all] | | +| 6.2 | show event [ detail \| summary \| severity \| timestamp \| recent <5min\|1hr\|1day> \| sequence-number ] | | +| 6.3 | show event profile | | +| 6.4 | alarm acknowledge | | +| 6.5 | logging server [ log \| event ] | default is 'log' | +| 6.6 | event profile [ default \| name-of-file ] | | +| 7 | gNMI subscription | | +| 7.1 | Subscribe to openconfig Event container and Alarm container. All events and alarms published to gNMI subscribed clients. | | +| 8 | Clear all events | | +| 8 | Any change in open source should be aligned and upstream. | | ## 1.2 Design Overview -![Block Diagram](event-alarm-framework-blockdiag.png) +![Block Diagram](eventd-block.png) ### 1.2.1 Basic Approach The feature involves new development. -Applications act as producers by writing to a table with the help of event notify library. -Eventd reads new record in the table and processes it: +EventDB service subscribes to the zmqproxy service. It processes events as: It saves the entry in event table; if the event has an action and if it is *RAISE*, record gets added to alarm table, severity counter in ALARM_STATS is increased. If the received event action is *CLEAR*, record in the ALARM table is removed and severity counter in ALARM_STATS of that alarm is reduced by 1. If eventd receives an event with action *ACKNOWLEDGE* from mgmt-framework, severity counter in ALARM_STATS is reduced by 1. If eventd receives an event with action *UNACKNOWLEDGE* from mgmt-framework, severity counter in ALARM_STATS is increased by 1. -Eventd then informs logging API to format the log message and send the message to syslog. Any application like pmon can subscribe to tables like ALARM_STATS to act accordingly. ### 1.2.2 Container -A new container by name, eventd, is created to hold event consumer logic. +The new service EventDB, will execute in the existing eventd container. # 2 Functionality ## 2.1 Target Deployment Use Cases @@ -258,7 +242,7 @@ The framework assigns an unique sequence number to each of the events sent by ap In addition, the framework provides the following key management services: -- Push model: Event/Alarm information to remote syslog hosts and subscribed gNMI clients +- Push model: Event/Alarm information to subscribed gNMI clients - Pull model: Event/Alarm information from CLI, REST/gNMI interfaces - Ability to change severity of events, turn off a particular event - Ability to acknowledge an alarm @@ -268,24 +252,18 @@ Event Management Framework allows applications to store "state" of the system fo # 3 Design ## 3.1 Overview -There are three players in the event framework. Producers, which raises events; a consumer to receive and process them as they are raised and a set of receivers one for each NBI type. -Applications act as producers of events. - -Event consumer class in eventd container receives and processes the received event. -Event consumer manages received events, updates event table, alarm table, event_stats table and alarm_stats tables and invokes logging API, which constructs message and sends it over to syslog. +Event-DB service in eventd container receives and processes the received events from zmqproxy service. +Event consumer manages received events, updates event table, alarm table, event_stats table and alarm_stats tables. Operator can chose to change properties of events with the help of event profile. Default event profile is available at */etc/evprofile/default.json*. User can download the default event profile, modify and upload it back to the switch to apply it. - Through event profile, user can change severity of any event and also can enable/disable a event. Through CLI, REST or gNMI, event table and alarm table can be retrieved using various filters. ### 3.1.1 Event Producers -Application that need to raise an event, need to use event notifiy API ( LOG_EVENT ). -This API is part of *libeventnotify* library that applications need to link. For one-shot events, applications need to provide event-id (name of the event), source, dynamic message, and event action set to NOTIFY. @@ -322,72 +300,22 @@ Developers of new events or alarms need to update this file by declaring name an ] } ``` -The format of event notify API is: - -definition: -``` - LOG_EVENT(name, source, action, MSG, ...) -``` -- name is name of the event -- source is the object that is generating this event -- action is either NOTIFY, RAISE_ALARM, CLEAR_ALARM, ACK_ALARM or UNACK_ALARM -- MSG can be json string. If json string, it is rendered as is in the syslog. - -Usage: -For one-shot events: -``` - LOG_EVENT(CUSTOM_EVPROFILE_CHANGE, profile_name.c_str(), NOTIFY, "New event profile is %s", profile_name.c_str()); -``` - -For alarms: -``` - if (temperature >= THRESHOLD) { - LOG_EVENT(TEMPERATURE_EXCEEDED, sensor_name_p, RAISE_ALARM, "Temperature for sensor %s is %d degrees", sensor_name_p, current_temp); - } else { - LOG_EVENT(TEMPERATURE_EXCEEDED, sensor_name_p, CLEAR_ALARM, "Temperature for the sensor %s is %d degrees ", sensor_name_p, current_temp); - } -``` #### 3.1.1.2 Development Process -Here is a typical developement process to link eventnotify library to a component and be able to send new events/alarms: - -a. Update buildimage/rules/*app*.mk - - Add $(LIBEVENTNOTIFY_DEV) to compile dependency. - - Add $(LIBEVENTNOTIFY) to runtime dependency. - -``` - Ex: For rules/tam.mk, - - $(SONIC_TAM)_DEPENDS += $(LIBEVENTNOTIFY_DEV) - $(SONIC_TAM)_RDEPENDS += $(LIBEVENTNOTIFY) -``` - -b. Update Makefile.am of the app to link to event notify library. -``` - Ex: To let tammgr use event notify API, update src/sonic-tam/tammgr/Makefile.am as below: - - tammgrd_LDADD += -leventnotify -``` -c. Declare the name of new event/alarm along with revision, severity, enable flag and static message in sonic-eventd/etc/evprofile/default.json - -d. In the source file where event is to be raised, include eventnotify.h and invoke LOG_EVENT with action as NOTIFY/RAISE_ALARM/CLEAR_ALARM (ACK_ALARM/UNACK_ALARM are used by mgmt-framework to allow users to acknowledge/unacknowledge alarms). +Declare the name of new event/alarm along with revision, severity, enable flag and static message in sonic-eventd/etc/evprofile/default.json -The event notifier takes the event properties, packs a field value tuple and writes to a table, by name, EVENTPUBSUB. +In the source file, the event is published with action as NOTIFY/RAISE_ALARM/CLEAR_ALARM (ACK_ALARM/UNACK_ALARM are used by mgmt-framework to allow users to acknowledge/unacknowledge alarms). -The EVENTPUBSUB table uses event-id and a sequence-id generated locally by event notifier as the key so that there wont be any conflicts across multiple applications trying to write to this table. ### 3.1.2 Event Consumer -The event consumer is a class in sonic-eventd container that processes the incoming record. +The event consumer is a class in EventDB service that processes the incoming record. On intitialization, event consumer reads */etc/evprofile/default.json* and builds an internal map of events, called *static_event_map*. It then verifies if there was a custom event profile configured and merges its contents to static_event_map built from default event profile. -It then reads from EVENTPUBSUB table. This table contains records that are published by applications and waiting to be read by eventd. -Whenever there is a new record, event consumer reads the record, processes and deletes it. +It then subscribes to zmqproxy for events. -On reading the field value tuple, using the event-id in the record, event consumer fetches static information from *static_event_map*. +On reading the event, using the event-id in the record, event consumer fetches static information from *static_event_map*. As mentioned above, static information contains severity, static message and event enable flag. If the enable flag is set to false, event consumer ignores the event by logging a debug message. If the flag is set to true, it continues to process the event as follows: @@ -399,7 +327,7 @@ If the flag is set to true, it continues to process the event as follows: - If action is ACK_ALARM, update *acknowledged* flag of the corresponding raised entry to true in ALARM table and stores timestamp to *acknowledge_time*. - If action is UNACK_ALARM, update *acknowledged* flag of the corresponding raised entry to false in ALARM table and stores timestamp to *acknowledge_time*. - Event and Alarm Statistics tables are updated -- Invoke logging API to send a formatted message to syslog + #### 3.1.2.1 Severity Supported event severities: CRITICAL, MAJOR, MINOR, WARNING and INFORMATIONAL as defined opeconfig alarm yang. @@ -488,72 +416,11 @@ The *MINOR* alarm is also acknowledged by user. ALARM_STATS reads: Major as 0, M The *MAJOR* alarm is also unacknowledged by user. ALARM_STATS reads: Major as 1, Minor as 0. So it is now considered for system LED. System LED becomes Red. ### 3.1.4 Event Receivers -Supported NBIs are: syslog, REST and gNMI. - -#### 3.1.4.1 syslog -Logging API contains logic to take the event record, augment it with any static information, format the message and -send it to syslog. -``` - if (ev_act.empty()) { - const char LOG_FORMAT[] = "[%s], %%%s %s. %s"; - // event Type - // Event Name - // Static Desc - // Dynamic Desc - - // raise a syslog message - syslog(LOG_MAKEPRI(ev_sev, SYSLOG_FACILITY), LOG_FORMAT, - ev_type.c_str(), - ev_id.c_str(), ev_msg.c_str(), ev_static_msg.c_str()); - } else { - const char LOG_FORMAT[] = "[%s] (%s), %%%s %s. %s"; - // event Type - // event action - // Event Name - // Static Desc - // Dynamic Desc - // raise a syslog message - syslog(LOG_MAKEPRI(ev_sev, SYSLOG_FACILITY), LOG_FORMAT, - ev_type.c_str(), ev_act.c_str(), - ev_id.c_str(), ev_msg.c_str(), ev_static_msg.c_str()); - } -``` -An example of syslog message generated for an event raised when user selects a custom event profile. -``` -May 19 21:22:07.122786 2021 sonic WARNING eventd#eventd[2419]: [EVENT], %CUSTOM_EVPROFILE_CHANGE : handle_custom_evprofile: Custom Event Profile myprofile.json is applied.. Custom Event Profile is selected by user. -``` -Syslog message for an alarm raised by a sensor: -``` -May 19 21:42:14.373410 2021 sonic ALERT eventd#eventd[2453]: [ALARM] (RAISE), %TEMPERATURE_EXCEEDED : temperatureCrossedThreshold: Current temperature of sensor/2 is 76 degrees. Temperature threshold is 75 degrees. -``` -Syslog message when alarm is cleared is as follows: -``` -May 19 21:46:34.373693 2021 sonic ALERT eventd#eventd[2453]: [ALARM] (CLEAR), %TEMPERATURE_EXCEEDED : temperatureCrossedThreshold: Current temperature of sensor/2 is 70 degrees. Temperature threshold is 75 degrees. -``` -Syslog message when alarm with id=4 is acknowledged is as follows: -``` -May 19 21:48:05.870530 2021 sonic ALERT eventd#eventd[2453]: [ALARM] (ACKNOWLEDGE), Alarm id 4 ACKNOWLEDGE. -``` - -Syslog message when alarm with id=4 is unacknowledged is as follows: -``` -May 19 21:53:24.490545 2021 sonic ALERT eventd#eventd[2453]: [ALARM] (UNACKNOWLEDGE), Alarm id 4 UNACKNOWLEDGE. -``` -Operator can configure specifc syslog host to receive either syslog messages corresponding to events or general log messages. -Through CLI, operator can chose 'logging server [log|event]' command. -When operator configures a host with 'event' type, it receives *only* log messages corresponding to events. -Support for VRF/source-interface/UDP port are all are applicable for 'event' type. - -#### 3.1.4.2 REST -Subcribing through REST to receive event notifications is currently being evaluated. - -#### 3.1.4.3 gNMI -gNMI clients can subscribe to receive event notifications. Subscribed gNMI clients receive event fields as in the DB and -there is no customization of these fileds similar to syslog messages. +gNMI clients can subscribe to receive event notifications. TODO: add definitions of protobuf spec -#### 3.1.4.4 System LED +#### 3.1.4.1 System LED The original requirement was to change LED based on severities of the events. But on most of the platforms the system/power/fan LEDs are managed by the BMC. BMC (baseboard management controller) is an embedded system that manages various platform elements like fan, PSU, temperature sensors. There is an API that can be invoked to control LED, but not all platforms will support that API if they are fully controlled by the BMC. @@ -564,14 +431,11 @@ A mechanism must exist for one of these to be master, which, in this case, is pm The proposed solution is to have pmon use ALAMR_STATS counters in conjunction with existing logic to update system LED. -#### 3.1.4.5 Event/Alarm flooding +#### 3.1.4.2 Event/Alarm flooding There are scenarios when system enters a loop of a fault condition that makes application trigger events continuously. To avoid such instances flood the EVENT or ALARM tables, eventd maintains a cache of last event/alarm. Every new event/alarm is compared against this cache entry to make sure it is not a flood. If it is found to be same event/alarm, the newly raised entry will be silently discarded. -#### 3.1.4.6 Eventd continuous restart -Under the scenarios when eventd runs into an issue and restarts continuously, applications might keep writing to the eventpubsub table. As consumer - eventd - is not able to remove events from the pusbsub table, eventpusbub table could grow forever as applications keep rising events/alarms. -One way to fix is to have the system monitor daemon to periodically (very high polling interval) to check the number of keys in the table and if it exceeds a number, delete all the entries. When system monitor daemon does this, it logs a syslog message. ### 3.1.5 Event Profile The Event profile contains mapping between event-id and severity of the event, enable flag. @@ -845,26 +709,9 @@ The following filters are supported: - Records between two timestamps, one timestamp and end, and beginning and a timestamp. - All records between two Sequence Numbers (incl end and begin) -### 3.1.9 Supporting third party containers -To support third party components ( e.g. FRR, teamd, DHCP Relay, LLDPd, ntpd etc ) which can not be modified to raise events, the following options are considered -and are being evaluated. -1. Patch the components - Create a patch for these components by adding libeventnotify library and invoke the API. This however, requires these patches need to be maintained in the code forever. - -2. Listen to syslog messages - As many of these components raises syslog messages on an important event, a listener can be implemented to read incoming syslog messages and raise - events based on the message. - This however is heavy on performance due to the fact that listener has to parse each syslog message. Also listener need to maintain a map of messages to - event-id and need to be aware of resource and other specific details. It need to be aware of nuances of alarm raising/clearing if the component follows - any specific logic. - -Approach 1 is preferred. ## 3.2 DB Changes ### 3.2.1 EVENT DB -A new instance, redis4, is created and EVENT DB uses the new instance. -The following tables uses Event DB. -Table EVENTPUBSUB is used for applications to write events and for eventd to access and process them. Event Table (EVENT) and Alarm Table (ALARM) are used to house events and alarms respectively. To maintain various statistics of events, these two tables are used : EVENT_STATS and ALARM_STATS. @@ -1045,14 +892,6 @@ This command clears all the records in the event table. All the event stats are The command will not affect alarm table or alarm statistics. Eventd generates an event informing that event table is cleared. -#### 3.3.2.2 Configuration Commands -``` -sonic(config)# logging server [log|event] -``` -Note: The 'logging server' command is an existing, already supported command. -It is only enhanced to take either 'log' or 'event' to indicate either native syslog messages or syslog messages corresponding to events alone are sent to the remote host. -Support with VRF/source-interface and configuring remote-port are all backward comaptible and will be applicable to either 'log' or 'event' options. - #### 3.3.2.3 Show Commands ``` sonic# show event profile @@ -1252,37 +1091,29 @@ openconfig REST links: * /restconf/data/openconfig-system:system/alarms * /restconf/data/openconfig-system:system/openconfig-alarms-ext:alarm-stats -# 4 Flow Diagrams -![Sequence Diagram](event-alarm-framework-seqdiag.png) -# 5 Warm Boot Support -## 5.1 Application warm boot +# 4 Warm Boot Support +## 4.1 Application warm boot Applications confirming to the warm boot, should have stored their state and compare current values against previous values. Such compliant application also "remembers" that it raised an event before for a specific condition. They would * not raise alarms/events for the same condition that it raised pre warm boot * clear those alarms once current state of a particular condition is recovered (by comparing against the stored state). -## 5.2 eventd warm boot -Records from applications are stored in a table, called EVENTPUBSUB. -Records that are being written will be queued when the consumer (eventd) is down. - -During normal operation, eventd reads, processes whenever a new record is added to the table. +## 4.2 eventd warm boot -When eventd is restarted, events and alarms raised by applications will be waiting in a queue while eventd is coming up. -When eventd eventually comes back up, it reads those records in the queue. -# 6 Scalability +# 5 Scalability In this feature, scalability applies to Event Table (EVENT). As it is persistent and it records every event generated on the system, to protect against it growing indefinitely, user can limit its size through a manifest file. By default, the size of Event Table is set to 40k events or events for 30 days - after which, older records are discarded to make way for new records. -# 7 Showtech support +# 6 Showtech support The techsupport bundle is upgraded to include output of "show event recent 60min” and “show alarm all”. The first command displays all the events that were sent by applications for the last one hour. The second command displays all the alarms that are waiting to be cleared by applications (this includes alarms that were acknowledged by operator as well). -# 8 Unit Test +# 7 Unit Test - Raise an event and verify the fields in EVENT table and EVENT_STATS table - Raise an alarm and verify the fields in ALARM table and ALARM_STATS table - Clear an alarm and verify that record is removed from ALARM and ALARM_STATS tables are udpated diff --git a/doc/event-alarm-framework/eventd-block.png b/doc/event-alarm-framework/eventd-block.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e5bcf8bd0f8138a848dcf79081d05b08ef32d5 GIT binary patch literal 61643 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 z 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 MTc?!;%V~%I1?~<7LjV8( literal 0 HcmV?d00001 From 5a42f80da0a10a78eb8bb8d28a0c9aa1f12e1503 Mon Sep 17 00:00:00 2001 From: bhaveshdell <55215495+bhaveshdell@users.noreply.github.com> Date: Mon, 3 Jul 2023 14:32:56 -0700 Subject: [PATCH 2/5] Udpates. Change to sonic-event-history. Add sonic-event-community.yang changes. --- .../event-alarm-framework.md | 43 ++++++++++++++++--- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/doc/event-alarm-framework/event-alarm-framework.md b/doc/event-alarm-framework/event-alarm-framework.md index db6f28909f..88a46b4018 100644 --- a/doc/event-alarm-framework/event-alarm-framework.md +++ b/doc/event-alarm-framework/event-alarm-framework.md @@ -723,8 +723,37 @@ Eventd reads the file name from this table and merges it with its static_event_m The following is SONiC yang for events. ``` -module: sonic-event - +--rw sonic-event + +update existing sonic-events-comm.yang +Add attributes type-id and action. + + grouping sonic-events-cmn { + + .... + .... + + leaf type-id { + type union { + type string; + type identityref { + base SONIC_EVENT_TYPE_ID; + } + } + description + "The abbreviated name of the alarm"; + } + + leaf action { + type event-action; + description + "The action to operation on the event"; + } + } + + + +module: sonic-event-history + +--rw sonic-event-history +--rw EVENT | +--rw EVENT_LIST* [id] | +--rw id uint64 @@ -744,7 +773,7 @@ module: sonic-event +--rw cleared? uint64 rpcs: - +---x show-events + +---x show-event-history +---w input | +---w (option)? | +--:(time) @@ -1076,8 +1105,8 @@ Acnowledged: 2 ### 3.3.3 REST API Support sonic REST links: -* /restconf/data/sonic-event:sonic-event/EVENT/EVENT_LIST -* /restconf/data/sonic-event:sonic-event/EVENT_STATS/EVENT_STATS_LIST +* /restconf/data/sonic-event:sonic-event-history/EVENT/EVENT_LIST +* /restconf/data/sonic-event:sonic-event-history/EVENT_STATS/EVENT_STATS_LIST * /restconf/data/sonic-alarm:sonic-alarm/ALARM/ALARM_LIST * /restconf/data/sonic-alarm:sonic-alarm/ALARM_STATS/ALARM_STATS_LIST * /restconf/operations/sonic-evprofile:get-evprofile @@ -1086,8 +1115,8 @@ sonic REST links: * /restconf/operations/sonic-alarm:unacknowledge-alarms openconfig REST links: -* /restconf/data/openconfig-system:system/openconfig-events:events -* /restconf/data/openconfig-system:system/openconfig-events:event-stats +* /restconf/data/openconfig-system:system/openconfig-event-history:events +* /restconf/data/openconfig-system:system/openconfig-event-history:event-stats * /restconf/data/openconfig-system:system/alarms * /restconf/data/openconfig-system:system/openconfig-alarms-ext:alarm-stats From fb36ac7e68319b5757fa06780c31e67d2d3ef5e8 Mon Sep 17 00:00:00 2001 From: bhaveshdell <55215495+bhaveshdell@users.noreply.github.com> Date: Thu, 21 Sep 2023 02:29:32 -0700 Subject: [PATCH 3/5] Updates to sonic-yang model.w --- .../event-alarm-framework.md | 60 ++++++++----------- 1 file changed, 24 insertions(+), 36 deletions(-) diff --git a/doc/event-alarm-framework/event-alarm-framework.md b/doc/event-alarm-framework/event-alarm-framework.md index 88a46b4018..f60c874057 100644 --- a/doc/event-alarm-framework/event-alarm-framework.md +++ b/doc/event-alarm-framework/event-alarm-framework.md @@ -265,9 +265,9 @@ Through CLI, REST or gNMI, event table and alarm table can be retrieved using va ### 3.1.1 Event Producers -For one-shot events, applications need to provide event-id (name of the event), source, dynamic message, and event action set to NOTIFY. +For one-shot events, applications need to provide event id (name), (source), dynamic message. -For alarms, applications need to provide event-id (name of the event), source, dynamic message, and event action (RAISE_ALARM / CLEAR_ALARM / ACK_ALARM /UNACK_ALARM). +For alarms, applications need to provide event-id (name ), source, dynamic message, and event action (RAISE_ALARM / CLEAR_ALARM / ACK_ALARM /UNACK_ALARM). The ACK_ALARM/UNACK_ALARM action types are used only by mgmt-framework to provide the functionality to acknowledge/unacknowledge the alarms through NBI. Eventd maintains a json file of events and alarms at sonic-eventd/etc/evprofile/default.json. This is the default event profile that gets installed on the device at /etc/evprofile/default.json. @@ -305,11 +305,28 @@ Developers of new events or alarms need to update this file by declaring name an Declare the name of new event/alarm along with revision, severity, enable flag and static message in sonic-eventd/etc/evprofile/default.json -In the source file, the event is published with action as NOTIFY/RAISE_ALARM/CLEAR_ALARM (ACK_ALARM/UNACK_ALARM are used by mgmt-framework to allow users to acknowledge/unacknowledge alarms). +In the source file, the event is published with action as RAISE_ALARM/CLEAR_ALARM (ACK_ALARM/UNACK_ALARM are used by mgmt-framework to allow users to acknowledge/unacknowledge alarms). +The event publish api introduced by the producer framework is: +void event_publish(event_handle_t handle, const std:string &event_tag, + const event_params_t *params=NULL); + +For further details of this API, refer to events-producer.md. +The following additional parameters to be given with this api: +1. action - If application has to raise an alarm an "action" attribute has to be given which this api call. +2. resource- The resource on which this event is raised. for e.g., interface name, ip address, etc. + +For e.g call for port down event. +current call: + event_params_t params = {{"ifname",port.m_alias},{"status",isUp ? "up" : "down"}}; + event_publish(g_events_handle, "if-state", ¶ms); + +new call: + event_params_t params = {{"ifname",port.m_alias},{"status",isUp ? "up" : "down"}, {"resource", port.m_alias}}; + event_publish(g_events_handle, "if-state", ¶ms); ### 3.1.2 Event Consumer -The event consumer is a class in EventDB service that processes the incoming record. +The event consumer is a class in EventDB service that processes the incoming events. On intitialization, event consumer reads */etc/evprofile/default.json* and builds an internal map of events, called *static_event_map*. It then verifies if there was a custom event profile configured and merges its contents to static_event_map built from default event profile. @@ -319,7 +336,7 @@ On reading the event, using the event-id in the record, event consumer fetches s As mentioned above, static information contains severity, static message and event enable flag. If the enable flag is set to false, event consumer ignores the event by logging a debug message. If the flag is set to true, it continues to process the event as follows: -- Generate new sequence-id for the event +- Get source, event name, sequence id and dynamic msg from the published event. - Write the event to Event Table - It verifies if the event corresponds to an alarm - by checking the *action* field. If so, alarm consumer API is invoked for the event for further processing. - If action is RAISE_ALARM, add the record to ALARM table @@ -335,7 +352,7 @@ The corresponding syslog severities are: log-alert, log-crit, log-error, log-war Severity INFORMATIONAL is not applicable to alarms. #### 3.1.2.2 Sequence-ID -Every new event should have a unique sequential ID. The sequence-id is of the format <32 bit time_t><5 digit running sequence 00000 to 99999>. These semantics allows applications to layout the logs chronologically. +Every new event should have a unique sequential ID. The sequence-id is of the format <32 bit time_t><5 digit running sequence 00000 to 99999>. These semantics allows applications to layout the logs chronologically. Seqence Id is given by the published event. A unique id will be associated to every alarm. #### 3.1.2.3 Revision Every event/alarm defined in the profile must have a revision specified as a numerical. If not given, the default revision '0' is assigned to the event/alarm. This revision is to be incremented if the alarm parameters are updated. @@ -570,7 +587,6 @@ When either of the limit is reached, the framework wraps around the table by dis User can send SIGINT to eventd process to force read and apply the manifest limits. -The EVENTPUBSUB table will be periodically monitored and flushed based of a pre-defined table limit. Based on discussions this can be plugged into existing system jobs. An example of an event in EVENT table. ``` @@ -724,34 +740,6 @@ Eventd reads the file name from this table and merges it with its static_event_m The following is SONiC yang for events. ``` -update existing sonic-events-comm.yang -Add attributes type-id and action. - - grouping sonic-events-cmn { - - .... - .... - - leaf type-id { - type union { - type string; - type identityref { - base SONIC_EVENT_TYPE_ID; - } - } - description - "The abbreviated name of the alarm"; - } - - leaf action { - type event-action; - description - "The action to operation on the event"; - } - } - - - module: sonic-event-history +--rw sonic-event-history +--rw EVENT @@ -888,7 +876,7 @@ module: sonic-evprofile +--ro status? string ``` -openconfig alarms yang is defined at [here](https://github.com/openconfig/public/blob/master/release/models/system/openconfig-alarms.yang) +openconfig alarms yang is defined [here](https://github.com/openconfig/public/blob/master/release/models/system/openconfig-alarms.yang) ### 3.3.2 CLI #### 3.3.2.1 Exec Commands From fc95cb68b2933c20d6aad04af7b74b2c90bcfda2 Mon Sep 17 00:00:00 2001 From: bhaveshdell <55215495+bhaveshdell@users.noreply.github.com> Date: Thu, 21 Sep 2023 09:17:35 -0700 Subject: [PATCH 4/5] Updates.Add sonic-yang changes. event-id and event name used interchangeably. --- .../event-alarm-framework.md | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/doc/event-alarm-framework/event-alarm-framework.md b/doc/event-alarm-framework/event-alarm-framework.md index f60c874057..ee1a62f5fe 100644 --- a/doc/event-alarm-framework/event-alarm-framework.md +++ b/doc/event-alarm-framework/event-alarm-framework.md @@ -265,7 +265,7 @@ Through CLI, REST or gNMI, event table and alarm table can be retrieved using va ### 3.1.1 Event Producers -For one-shot events, applications need to provide event id (name), (source), dynamic message. +For one-shot events, applications need to provide event-id (name), (source), dynamic message. For alarms, applications need to provide event-id (name ), source, dynamic message, and event action (RAISE_ALARM / CLEAR_ALARM / ACK_ALARM /UNACK_ALARM). The ACK_ALARM/UNACK_ALARM action types are used only by mgmt-framework to provide the functionality to acknowledge/unacknowledge the alarms through NBI. @@ -303,7 +303,9 @@ Developers of new events or alarms need to update this file by declaring name an #### 3.1.1.2 Development Process -Declare the name of new event/alarm along with revision, severity, enable flag and static message in sonic-eventd/etc/evprofile/default.json +Declare the event-id of new event/alarm along with revision, severity, enable flag and static message in sonic-eventd/etc/evprofile/default.json + +Create a sonic-yang representation of the event as described in the producer framework. In the source file, the event is published with action as RAISE_ALARM/CLEAR_ALARM (ACK_ALARM/UNACK_ALARM are used by mgmt-framework to allow users to acknowledge/unacknowledge alarms). @@ -322,9 +324,13 @@ current call: event_publish(g_events_handle, "if-state", ¶ms); new call: - event_params_t params = {{"ifname",port.m_alias},{"status",isUp ? "up" : "down"}, {"resource", port.m_alias}}; + event_params_t params = {{"ifname",port.m_alias},{"status",isUp ? "up" : "down"}, {"resource", port.m_alias}, {"event-id", "INTERFACE_OPER_STATUS_CHANGE"}, {"text", isUp? "status:UP" : "status:DOWN"}}; event_publish(g_events_handle, "if-state", ¶ms); + +e.g., Sensor temperature critical high + event_params_t params = {{"event-id", "SENSOR_TEMP_CRTICAL_HIGH"}, {"text", "Current temperature {}C, critical high threshold {}C", {"action":"RAISE_ALARM"}, {"resource":"sensor_name"}}} ; + event_publish(g_events_handle, "sensor_temp_critical_high", ¶ms); ### 3.1.2 Event Consumer The event consumer is a class in EventDB service that processes the incoming events. @@ -336,7 +342,7 @@ On reading the event, using the event-id in the record, event consumer fetches s As mentioned above, static information contains severity, static message and event enable flag. If the enable flag is set to false, event consumer ignores the event by logging a debug message. If the flag is set to true, it continues to process the event as follows: -- Get source, event name, sequence id and dynamic msg from the published event. +- Get source, event-id, sequence id and dynamic msg from the published event. - Write the event to Event Table - It verifies if the event corresponds to an alarm - by checking the *action* field. If so, alarm consumer API is invoked for the event for further processing. - If action is RAISE_ALARM, add the record to ALARM table @@ -352,7 +358,7 @@ The corresponding syslog severities are: log-alert, log-crit, log-error, log-war Severity INFORMATIONAL is not applicable to alarms. #### 3.1.2.2 Sequence-ID -Every new event should have a unique sequential ID. The sequence-id is of the format <32 bit time_t><5 digit running sequence 00000 to 99999>. These semantics allows applications to layout the logs chronologically. Seqence Id is given by the published event. A unique id will be associated to every alarm. +Every new event should have a unique sequential ID. The sequence-id is of the format <32 bit time_t><5 digit running sequence 00000 to 99999>. These semantics allows applications to layout the logs chronologically. Sequence Id is given by the published event. A unique id will be associated to every alarm. #### 3.1.2.3 Revision Every event/alarm defined in the profile must have a revision specified as a numerical. If not given, the default revision '0' is assigned to the event/alarm. This revision is to be incremented if the alarm parameters are updated. @@ -451,7 +457,7 @@ The proposed solution is to have pmon use ALAMR_STATS counters in conjunction wi #### 3.1.4.2 Event/Alarm flooding There are scenarios when system enters a loop of a fault condition that makes application trigger events continuously. To avoid such instances flood the EVENT or ALARM tables, eventd maintains a cache of last event/alarm. Every new event/alarm is compared against this cache entry -to make sure it is not a flood. If it is found to be same event/alarm, the newly raised entry will be silently discarded. +to make sure it is not a flood. If it is found to be same event/alarm, the newly raised entry will be silently discarded. ### 3.1.5 Event Profile @@ -740,6 +746,28 @@ Eventd reads the file name from this table and merges it with its static_event_m The following is SONiC yang for events. ``` +update existing sonic-events-comm.yang +Add attributes type-id and action. + grouping sonic-events-cmn { + .... + .... + leaf type-id { + type union { + type string; + type identityref { + base SONIC_EVENT_TYPE_ID; + } + } + description + "The abbreviated name of the alarm"; + } + leaf action { + type event-action; + description + "The action to operation on the event"; + } + } + module: sonic-event-history +--rw sonic-event-history +--rw EVENT From 80efe0d7feeafc4a76f12dc046a5d4b00f73d33d Mon Sep 17 00:00:00 2001 From: bhaveshdell <55215495+bhaveshdell@users.noreply.github.com> Date: Sat, 14 Oct 2023 06:35:11 -0700 Subject: [PATCH 5/5] Remove custom event profile. --- .../event-alarm-framework-seqdiag.png | Bin 252171 -> 0 bytes .../event-alarm-framework.md | 303 ++++++------------ 2 files changed, 97 insertions(+), 206 deletions(-) delete mode 100644 doc/event-alarm-framework/event-alarm-framework-seqdiag.png diff --git a/doc/event-alarm-framework/event-alarm-framework-seqdiag.png b/doc/event-alarm-framework/event-alarm-framework-seqdiag.png deleted file mode 100644 index 5473b2c63aa434cfb98298a3b7a2cefb61bb76ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252171 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

+NIqm z7k`yN4A=5g$rrj;9DGe2wGN+}m$0y~oNM-4(F+=;63J$SjVsS|Vr0yUJKu~+Z0o93 zs~##}lVn(~q>DIL!r4kd#c(Z=eyEhw401(j+%SOp-0{q4HB^h`l-92MB?VCk_BuN> zW#JHfJWdBYWYLO+Ypg%m{Wl1aX!Z*0Kc z=|6w)2VYV5;7qQXIkrofKsiSUQ&|sRZ}_ou7_0Vw*0P*+$j;*Bf0?ynY>+_xgie}t z?W^*2<35apTdS#x2CWcocX-buAWNU95DKsN21EJvx9-avqY&>ut=P2xFzeXS7-ot$X%8Q|B)S5s zkCBPfC_CwRczGLuw14Vfy}4-BS{UCGU=GrQiMoYucXlLJKt32iykO`FJe-+b-6)v) zar%B2RxBJ27NbHgN67yoH$DIKfNO|d6K4R6e$FK!R+6sm zM$)y9k#+X>>DqW3f8)fdgL|2Fc<_$=_wc08+`Wx+soebjzx?TaSeWPl{N{($FP*&^ zL6MQNMAbL^^aj|+uyf_V+zHU2@ycK_7O*O)eTmj=`92$b#~a^tFC5+5#N~NW0F5QD zWBH0&u%TczQ~A_@aLG?kSgHLe6=F>T-%tD1Q?mipa*=D+Y)q{1`BRr*Uq6-Q>;f=C z*`YjNLMYhaLvIX7N{u;2?hMOtyL^?c=ru|zgOS+%_fq|5sOhq-mtGaz5A5~>b@rEQ+9*Xhnt(*w*m~21^z!#YJ@|r44W2qxVdlqI81Uhpn|JNwim8M#D3OC-E>D<9&Xk`>#O})4Z_0jl^;3oH zdjdTj=At7YKuH^T!T&)pZSVrgGZ_sOwc{m5;#E96S4r3E;Vzaq`KVcnE)0epq_`%k zW1s-^dOl>+Ff}@lKkW8$y_GcN;oNr=IWzE18nj?EEe)V2JxDJrD6|Yy{Hg6Jr8k$| zrfl4}kp@EtJ4bk;d`uhKpDiWfUWf$S!X+ZxxhZ&$_fk|tphdp@K)lk?%kN~oCpa&7 zFw|(^oMO?nww;>ZFf4m?yq-fjNABNHeYg)IeE)QjG>Eo(XYj7v*aei*h{Qd7a&LweYCo)@7 zp{KnPXZvQaU^cpNOSRsUY&1=O=HYSw+&7d_J*M~DX^~WDC(1AHPO2RSH~#Gv%YmHW zGN$`SUKx*1wM{36rHj)~+5D)@9O*2kBT+eLm)Fs;e;Ygc->G$x6{tgXdt zd!Y?YTQLS{Lf`DF&bJ<~yBV`d_?g69Dn6oIl4t>H(0dlIST-VU-{Ea(&43iQ9GsYY zNx%+1-B#7B8)q+%hAWtWnznrHem1rBmh!dbkQPC#RO=-^GFTvGnE>U!#enB6MiBcA!iwS(^TJ7p!l0wdlLWy&`&j4>EFhlP4;q`*)bkvo>O`gsxyGKd zm*o)~(K}0wiIHEU`9wEjgY;)JmVVl zWm{))=rsZZW4H=H8oC-F*)pZpsVOPZE4kArTD8nRmC4J)BmYC+O=77}pPsybtMd#2 z3X0L`Vp0A=mMaFZmQW{7n!H;|N~-%(^xv(R?xYkdJu$I?he9c}Uek*V+8i6cK7o~I zv89zg8%}h;i;JNUAib7$^jelUWG4XBiJk0U>M$joj+As=>$veqAt%^X;qhyXUy*%4 zXWnyt2xN_of*-MB>C3NfM7OQH*aqM63O3zMLJ^Xe+&gz6v^zz&dtoO=gYqgk*h5rc#fR`r~T zQqNXlOU0?KexlHm>qySrH7Hrlwkb=b)8i0G0s!;w`*;fu=kr~FIRm|>G+Os%tgMi= zg_okmFReoK-`0{r^Ctyi;|LL1V7Tp6cT_qY~F-7S#lcATnC$X~<2fUbe7z+a1!1 z+H;eJ_y)3K@Zl<(E04&qIV7z)Dl9B#aDnW0PIu%(N1RaMPx&N&J$Ex3)tA0l{Ca{_ z%T@4q_?nJxe$7usBW5?y`iBv`>U`{cwdRs&qY|E$>ZJGwst+miGwES4M)=D!Wae2W zD^zUbbfyBmlzo1_zz2+u&ZW&4KD$?U=u^vj(gMIl`CuD016ylCz_iT9*k^g`;>8v> zXAJ=UqW7`>MGP>qbu^Yb!H5zkNep-^wA|6Z86W@2Vh%~8FK%89;HLfTxBTf>>7;#Y z&izZX=Vw3V?|d~2kJyo3uQ+}W=Qlq^r~dP}t()IH6*CNcN_4BeWSs!t20)(AqVd&y zuZp{Dbj)X0njv+DFnT@!NpjAPD;QSW3VOnr1g9+=*pDS0bK7gpsW8CLhr8q}Eb*6- z8@suNucL*PXp;zPANHKE}I(f3<3~ zgh^t{3b@*>)6|4tY3SA@+ZRRYh!c2X4GpnUX_B;e)3J)>kaoor#0uwAvU1Pu`|=iC zkvTxD@GBB|VT^J4dT#*(*#H@HQ3}K3rG>@C%V`;vU{7CzON&re2x=Qb(A+5JzVOlW z0!g)(kXybTl4lwg6}Rz|73!T(Q_5>=ukqs7iBq~N4C}vyE;?K>E+fuDww=B-d<>l< z>%PV6Q)Vp6Vw>Q^5yO34!CwWKl$E1kp}$nIkCTlL*45>8tapFB~8 zVzI4jg=o22ur73CQ*>^M-*0}LwAFP@;*dX1<9}x8o9f>J8josrV5iR zf%8wFK3!g2z11u@+oS{0$4{HA`y>|h@c{(oi`gOXI-Rt?F>^miU3svisU6l-n zQ9jq-z=`jOT@=~Wkubt?R@-n6Y=Rr#9TFrXkuVLYg^;9P-;5;nMXmiu!N)W8GsWC) zFvnbL0Um+T10Ps)?q4Q+50g9{js^DpgL`n7f?Iz8aF0J|b(rpItH!cyFIcpDAu8c> z9@lyaQ)tQpukG-xv7F1zMevUOXz-4wuMk$%e0Z9jvEF|Cne)^AkL3K&IxGKuy8k6_ zrloCB-=>(p|@KFKa1_@&^>Pyt2Hq;w_tw;}R%=VhrD`*spWSsN-$iF^%r( zR^M=TRJnU!<&k!VuZJ939X*D(Ogh~PJ$)=6mc!obQ}M9`r=Gu4an7m8yU4S;Mb2jX zA)U_KxZzHu=;K@OzUjb@>t(9#LPaP%SM3>T%JaUOyEXj@zJSwMBAw_5`F24bRFDIK z#44avG5l-E$D^hSKhwBH=>C>m{tgYXD?5{M< zjXv<~)`&=NrqazO;4zHMB8F;#C*cBct&(Mt#&h&~z0$t!Xw36rOZJP3b(Qb`99v>Kk4Iq!)+Lj7 zk*Uib&&(5Oy6c=A@$HdI%;SECr?1+SW)i-aW5-dQ_kAa7zDX+#;MT+fhdXKAj_+`P zF%uuZ^Q(u2S`bImfVZG({w?sfmC2B_zes(i+`6A`BHb&75dJ&$DR00u66?M^TdXoYM5h3nrA3b67uRaCOn#`C zZiFp+-hq%;y#goI-`(P=x+kf9z)m{Cn|&YS7kM4da##rViS+iJDBt*OpCZaL_32YX zdzCIk8?d;_r}7*rg{g$I+tdD7<50P{-~4oW>O)OQm5#oJlQS~R)cc)dL?s`|i4Q9( zX4zuyr_!NAUmSC(9T8}+GMp=zVxTX|fw@BuMIA}y>G;gcl*qRa;W1@8E-4Sx9=+_? z*|O##g|OXDx<(D{$wQoTY8Z%sAWc@}wOGw;o zA*-VI&>61Q0)2EFJ|Es?JZYjO1AuvkbUFr$ zW0ha}2-}g4jZWUwI~a>?VNmU;N>C8C?OcTS-IYjyzBbs}tmG9)pCk5=$C0AQ;6LA? zBFQ!?Bzm9zh0@8_=ReQs)EHL9xF*UjQ5nJ+kt5gHd2${EM-sF>dLC2cdKoW8r#jq{ z)7O<5wi_r8gM;eB+(e_OTJhl)xxA-w(Pv(Xh6fwzeP-@2*B;?{e8cH*{sZtTsrQ8C z=(E-vIL9(C6b~4;y7kA6Y;cQK|LL*g`mm(1;%N8!XVN@huMIM$zM9>-YR`dY9)UY= z)Lpq9>9rgC-nDfjiIY9TjT)mfah{mrDgoEP$UMj41Ns+UmCe+5cIgivT(4t$bC~D( zt2RX^md+fcYekz%f@H zv_m`l{f+mte^ciEMi7W#OLJ^wXA7=h@Pp{{iq=YQ;CCr+R0xUDkqJ)B`zpp#xBpW7 zO#cZb6(;I!Tb*ig<#SEb4-FR8>X1@lUjP+?}sEs)*uyEpBZZ>hy(%3PgQzINm56^Y~)%q zGq`o!@QY8E_Bk0H>)R04?df2e(x+S)E?nVIuh4(VEg*zYfPh>)Q8p5~t*;Dy-Ns;B zH(BrD@WnH~Ftr(U3AOV-8iDpSyJSezx>eC9ip{vAMLQrH5F;OdMw{4gkGkC33svLf z1~x=TyEto)+Y2^C)#zDhnD(hi29O{>OjbZJe`xU1nT%U6^V#KQ zwN9V2BjRg#5NYLMr4`9-kY-|ndG6CF6&Q&a{XWf|YypXFb@JhPtVUf@D&7-A@cK9D zL}?qcO+FFX@4l^1J)@h&j;H+%6orjt-$LCK=k4j6+dq4LOb*%+xf7<30z5zv5Kg?DcB6vB>4V z)KSYKened%KByYymn5wBS$yKNSPS%;A=)v`mk z2^6v;Mn+dno!T^F(A)LiY<~Btbc^;7{B%C>&24iY%+;AZ+95WbKG+}{_@b3oDt9>Z4aU784y~)?7j-Z_W>q&D z;Tg%__hVP~j(_0mLenIX1xU{z4!+_yrL>?`F`4kR=Lu%-P9SG>4z=!cB=iWmXtWpZ z4owHBGYESzATTe>Q>~0OhL@cq9df|*g*W-uY1xdbEV-d!omxX5u}pW@9gTPsc`YqI zsAOyy?vxU^Q-9^D-=Jmt?(I!N$t=yj%>%%4sJUJFG}3o#ExwOR zdE-UZTT851n3DSL0(Eq)N$WBY;Z~YACGm(=iyU}0R{R3||Hsv3ry`RV8U{{>?(g}F zYzq35<|-H)-!@S9N@a18kdN9L`IMZUobyIj4gT56N|?_gqw9{UDse6sR_ zJ<5Xr+?E^OaKei7Lf6keDN}P3a_XYa4V@(Y0ou6t0>-`N`^Gxe7pk$D2xzxK-x|gy z6pq16W~=(Q`NN5NSiYrMY0~s zKVI=h)#f#*&3Ur=XdJPee0Irkfjqp%@{M zOsStlReqFU<3lq4-#om{)~(m!?aKv!$LPB)iNqdZ$R>G_L-dDe5Ix3gK=1Zdo1ktyU+|*q__Wm$epT z5!&}#jH@>)z%M0h4uo3Y~I1T=FwX)cqL?DktLQl*2uuQ&XxwvBPahzZ#9C$hm( z(k0gUSu8FmljEhCJKv0LGyb-o1RjeGXKwPmWj;T~&P7D&=_Fu~Iqt)F@i0wqI;Wpc zH`-D2xHeXr{_#9}0|ZY+XS2cH9&0D}<7GqDF@E}Nx+k7*w!=in=@tqTp2Cvsq5ql-Fw*`6E**En87nsJeMKul%6zn2p zcD}I+-K&cRKcQ%od3D@IH3sS)Dh9&Y7uiKV08TJ@^2B8n5=aUGDKS7DIPAn~twRe( z0}(E8T@?J+g!6G(haD@EQ8uk5AHiL(?@w221~zeE@>*k z!R7!Nuzi^7u}q6bT+mK&pxYoGY@)Lc_vhkV3SE5z4_G#kB!S zii%I(a)>UuY=^w#*1~|3h&b78XlPjf`F-o;d_U2Jj@sgg*Xkw<$)w5Cm|4C?Mn%~Y zvdE}*QV1D~fuSeA=kTbpPb8aBscyEN$eFtPO&8E|+|_Lj4&4)wRM~X>jn>IRrNlAM zb`rkxtn7VV0u+MQ)y6W!pVZuB{Dw=e$KZxrJHUs;UnlVeCt!tOkvX(mKY`H;aPAsP z9G*(I2n$g|I`ff<)KiQ^69xz5$zZ)9Gwh9C&c%{`NcMgr8g?WZ25WH@(|=?hU0mqt zz@CFo^Du6NG1hI${F+#k4xLAHZXLIR)@YJr0N#mC`ti8UU&*m#E@C3wW=X-4^|#bBVv^Sv;g#T=BMJ_-Q_5TYv<*7QMTuci+Bpx zXgQTQ?@aLm@LBh)kTJDTX~yo0zF6R|Y%Scm6rU*9!96d1@M!^Rxe8=My{5_d&$uNm z6;`@P);Pu`m^B=i*_?!`Hvi&FX&n25wZVxD0pW_5YI7PJUPgm!;Jdk!DhrtT_yE+Ny+MzWU>2V&;pMD5fe(@G zzQjz1BH2V4(DRA03$0+7B4{GiPUio}r#(%J1=l*cQ6dW?&oGL( z{bFKbeDke`1JRSy`oE!soCjs}*Uv5^@s4o#U9mCyt<^NJ-ic%fJ1%F-JOrv}G_ z21_2cY@AyZhr5^Lz!bZU=82}P1WHR6n~h;${t$>fU(-b9D~=ql1<-SVk$+vX*@+kra74L+VU znRk{N?59Ji{h=sGhUgNhSLCTIyvkXm#R_5KDwf@uaqtN8AbR#nPEL-M@#d#ViUHp+ zzR!a4oJ?JJrC&^k?Sq!je6)162z_XMV0xg`HR%5K+?Vt3JnXW;O`?civDxVP*;#kL z)uaRlE^nzcj~kgO{&gSgYE@40!ECt`qsXaROHxL)7N{BuMH<#Stv2-D_+|TOtBN|8 z;W5#|d7kib?Hw-S{PC)OJlWW9(q8Tw z?2#<&g+Kjh!5(29hWqU+O^?^u0 zysLdIhxFuOs@AsYtXgH7{P8qtmP{msY|Ui5bx#UVQ$*W+JlKNCw;8|L0B^L}J4q5O z{y;0Kw05sU%%e)vG%dpIfw|)2_a;61^)9lX4&24~&Woq@rW6NA!XTME#N@}l7(*dA+3Ije7W+@5L2qQ$<$KWWxzY~CD z;?6kPg;UvOZ6o#~zfACd>_vECM}a4|)JT4%7NwQeG3uSESG2L8*G2@2#5(@IndlfD zq#ubFvufVAKk8sDdj2Cmdk1ESShp^Rl3-5X%q#GnfMfsDkg?VCAn6wE*3!DIsHhmI zN<}|O_UG{alxE(#T)e%1>&93LitR7DN+|PgY_R_B^WqO*M(geP2e*~gpv%9pAS4M* z5~cIK_pqqC^Sm6~k9undOK+DWkT-dcW7+?DD+5&k&6oE-)H(U@)BPLUQ2(pm%uC)) z_G4Ore_<~E-?Q{z>|S>J)PCK`alCz<{rd}oW0Bo<#7y&oP3Jl`;ojeAH0g-f3dAf@ zUQMm#CyfR(0&8d3bopG82P)p>Nc??R0m+jwr&M{le{@Q7K_o5!~~{4y5A3x{J)^bh~o-+8|6cm&JD z+#m%xzb&f}KJOJ@>s%QW*Nj~3rHqTP48sEBR_F5F=l~Q4iC-qII`Y}NTGO4x1+Ni*bBa{SHJw*3yx@(7poiESNNmc-O_F_Y z>29o6TS}7stlLUo;KR&gB7yNxlPtqo(CD#0fRjq5i9{v}D)*Wr>}z&%PN&S_mc5SI zU5>AiWl^+Nza0w|qd@ne9_}LWd@#3? zjPx?&Kdix}H3ZL39W&7&R% zITZJcx~}&#pVj$gboEhi+mwe>Y2MJ2fh``j4-Y78_WVA%BB6CfMMa7W-oE|xx8=xF z@zj5yzXP#BT0eaBQT98lrw4?G9Q0jGG9(q(8n6i>?BE*1Zi^)%2HVBnXZ$*%p|&3D5%!AEsT`?vw6cBV4~`b zAc0!%IMA&qDmhqg;O{9|>!^U*TB91v@p)kyDbu5{umVh`+I#@w=_sQz1CnS;w$H#H*v=*57XdNY-mut zzPHOq#~|3b9ip!=0s$GI$-Y{d*iF-hR}a zqxbB+g@jX68HK#MRQpsGZ22LVH6-T$m!a|Sdi+!8N8C0Qo~l5}?FUw_5-2W)_KFw5 zyOU4ObslIHwbpWSa>FXZ>;cc3+;V&N8yQqUbJy}Oru}r@ggO$)wbm^vk$DcuPEXXaA7*$y~<{9dcMv`ASRHD#DmBtiN(1vj#YvbALI9UUZUKgf0j1T6mqKxLR zxH0=K-fwx5;B9z?FX&)(`6^%*fcrMFV>!ZUre~1&XUD*7(9E-ax_@$@GoJ?F+`UIX zS~#WLQRn`$YF}&LiPjdy4)y~Qp((x3CfsyTztPI;2*7ESjAHCw%p2N-zMMNyJ~;t8 ztS?ev;zg&3oLekNi$Yq96{enJy!6a}P&5kD&fGqF*}fNoXix2qbYQs1VsX`voq&_!aZ;(OjSQCG&NNlGun!;fvfu7A83{yc2Qc^ zyQt6UnCKNAuij_c#cT~F3JDn!D)U_BbuD^_H9p^J?cTE%9q+SsLGOl-BPc z=KS>u0(dq@H&?{Au|%0n)3Lu<{wOS9XkQc3Yn%9>Nn`)SIPwL=^P_${Y6N#&WFtx? zXnGH0JO`M>)%QxijUMSSdbzYs0I1J8anHpTVdi^}03fpoQUvByb{)FnCb~ZRdMK9y z_%#kLo<(0gM**#{X`U3tnYf_hfc%#lK#pgTND%n?ywJ){a+M%4U(Zc!YR_<8Yc@o0l+VsXiFn1$l zpTZis#GGWYn}h4acpD%=6a8UKsokl z$9~b>)!lVv)Eq7t`6^d<%b{e(J4B*ymm7P)AM75!hn|-1`ndr~Uq*ceKP+E{3di)D z5r6ZnKmUk?ES}%uVEyu6_gwoZ5pI!^^D|VcmW}hYmsznXntJ<_sdMi_dx(A;V2a-J zU1Ubffv|@$s$t;c`|m?(5+wy?^EJ4HXk9`##>Xs)jAi-LbcnW@gfqZVy&h^}$y`gP z3_9G3KM?r>c&XeEEGzaBUt9{f$@bvZUn^Sgv|^7gF`SGt4g|# zqfgz9*ozegByU@K|NbkBHk)z6KDf@F0?>}u*yP*H zI=iM2G*%j9qgC|xWw9=` z?yPA&{m%gn=V2-^ZPDg^HeEFxq_5&b!8)_gTFkuud0mS@Yu{pQAeUP;G;Y3Ni?Ha; z=B=16NDuSrF2YrBez1wm8l1PQFIa9BYF-Ng6!;`|(i31d{WCc#qeW}}Q#Q@6e~!U_0PySObH zfHHCAL(?(4-kF;*f)$u0{=|P`W``QB^0jcByV**;Tj1(N9uP1{$(x8WdVAUj641(1pY?6^Bm^mddR1^W7oP4W+ zjG?UON+$S|yp>E97%-n0cruS_gD!lmOke|@q>B2yh}AfCVB@jEfV?OmYXQUaQ8HiQ zM2Zw}d!EJFTxnfvM~BBqBm7X1d>J}Up6!>8TF$DIQb|~8F1rLD5aa9K_b}kYe3GJt z0lHk)ZGt__U)}uN37>UmLDtSQWK*lKEDyijz6Y_||IjDB$-I7hD3*wIhhBat<_!q< zy_qbET~PczYkibtzVqGUFJNzE^H|6fZ1;S{b7DxxwRlN3tN%I;6B}ao2wPA$8>)9N zJBFsf@-?!g0$1WVqB)zuH~o{n&W$H zA_z0x{hzH`SlX_m6T9qtt9Icg%qzkD zKrMyUj&J=%rYh$z9ccavd!s%3{&o=ue=j920P{^>a(JPBt|U2}V= zCzn6>bJ~cLeMfAWrjds>oHTcT)f=p-_w>Cufnvx;``8E_23VEH3ehf^WJ;`89I~I_ zVvr_%{(W_kp9$5IS0$&fOoxA_=%>rHNJR%WqFuRo({$Lc~X6_XPjQR(X$`ZZ*@y)Mp@2gSyiJ+-#V=Y&C^?g=M+yw_aPxY8jMOv3UacV=`XC5n| z#q>*o6Xj-fedYE$qe8q?P6^^VJH}+yR=PJVJbdc)`(Jmq6a{$z?|zQ)swLE*&cD&$ zg?^(vn8)DzH|7FnI%fFstB=WBqO>7aceFP63|l!z8yGsuyV4D?Hi*fUML}cObJTCY zEmF0^<~8lYy7O~t+*msZWS)=VQ4yl)|F8M_zfSi5QJ+4!4FUctzkmM{Oq!BxzZ}~3 zs}Xm!zk)jHBEpmYEwupO!folixGuCWyvfc(@oceLdm{?#aP!94`I0L354k#*LZ&=_ zK5DU7?y~QpLt+`3rrC@Fn#5!iMQgeDn&0wv332E?1LY-t_5&x0qRDvL#3S$V zH_R?l3l;oxiyxATqJogag3z*gI&#(SNljYYFqe7bV1F`E76Eon}n)Z2l8!GmyxQa%c<-5_f)Zc^72awm=>c!;lk;B&$-sZy1d_IQyQSK?~SO5 z40e3jOrD%P{VJTws>E2(r~SUFsur^Ey0VAhiHljic+7a(2eWB!U zxieWBoYKwG^plDQ3&g${FWsgR`MJx%#lH5i=6GT?SrjG~MvFFJYyQ1zxV)WI^?NRm z+0C6fzcxjFTMLlpXG5=5`NFXWx~8*GNHPj0 zB+(%*E>AkY^8kz@<1w7wq@#3GYni4_N@R5Ggq!LvsLzo1w+2%=o$dvZufz~jcfu)r zTOazpra8yrt68@=YqNLs`8)Zz-4B-YPpu#7ws!Y+#xN6h*w=TW3YDFF2E$&y5_KEV zxqVIOAJoPJ4Z}rskj?&HAP#?_lcD)0V|CJyfkuNW?Tu%@PolLrIjt+@1EsFO;H?)$PhZPk4NOw+)~9Q{4C3JoM$Wa z4;{Eeko*yoqcZwX$J*}L$I~uFpS1pq(zEF&6%X88`DmoQFJt)Bl6&pW700hC_B$&% z>GdG#FNctW(QA4-eBYs^D#5Z)0|TE&rbh!Fwqtgt;YN*Z|8{TaG&LSV2f^b8QCHa2 zW%A_aZF2vE!x%dt6)fH_@_xG3FE5~KZd385u5g=k+WE#Bt%`anwGOwy^--pLRzanh zy4za1O5d(k&e}zPLh%UCG(HTEIB0b)L@2MM zUTdbnHjP$8`7i?{yIc!jZ+a(AQZ1r`_mOysDeitObvacojT_7RDtnbu!h_FuAd#hf zxrnOQEq_kqx#QHb7XOF6_m1m%|NsB#6fG(mW@Qw;QbHu{NR(*riAWI|+FK$cqd`hb zv@_Z}j!jELX=-XHEopvlk2vq+9M0$cKJWKA@89KjxxD{+_da>`TF-GGx7+nbxNsW+ z^j5{KJr%o(DrdAa-g4u1kuUN+xfWb@3SUcnoq1EnqYR&t_p2?lbEoFDClypWoxy&RqpR)9 z)bUPJ+bRsD7F1{@27K<68)~RdmT#%>{5(|_LFEoXs!QL%sh?)fCt>vTN^wTn(?70bGfDMBZ`Q%@iIRyOSt{7mHZ34vBg{Jm)@|-3+iJ zi5mIBwuUZ);HhJhqi?q2125Uh1?5Kh949>W$q(*nEYi|+F;#1Nej}eWhAyITb`_2o z`7FVnRc~nxVoNSMP8clMtGdT4tLDnpa&dK9%GfjABd_?JHH;3dri_ihT%`bVft&eU zVejO!7tV2N!>Nhhw{~IYXT%lbn57#Nm#eIas6~#3VZ)_Y7h0`wW}DEuh-I)MqM$tU znVS$!g@LMpjt(D(puW&uaf{{5&Jq0>WEM&VHto3mt!a0+yMMQ?1dZlIluxeHr&|OL ze&F^Ogi;|#-M0!%TW0l^9mymYss7$}e|}sVpw5ck|>NfnCQvj}%gTmnX<5M=2KY$`o)b^v(7iujOuJlGfBN z=HOzKCSzNET+JK6Y1>z=0`gyJx>@Ob2Y@w&!X>LSs8p( zFCzXJdtzN7e|7d<;UqA97g-nGQYjTp#%MTxf1E(q8E1n&n4l=ys&E#Lqd zTa7KuP@XyMd6@G}pv3FV-oPRFc7LTm&HaU!vxGzppt?D~iLoyx{-Kzhx81ER_I=?e zBjVkrKDjY*PQ=M7QnumfuNdt8SfXaXYUR*Kgb?23M(;5nKaO)g&gGM^g|pb^jXvZY zG8fQhn{~Uqrq5E@`-3sthsC+gni=V%f>-WH4ecwBDH^II&g+k#tAVUKUrOdeaM z!AsU;mX4JhT5SVQi3ci$LO9@pQGMoCk@Smx4V4`Bk#o9D^u!^2Pm&f&$AS4Tg=BhdIUL!fSxn4wWln9%84!<3fA z6IuNXM$gj|;TpO~sZ5U+Gmx{OZC~KhV$yGCe8>O?LP}exTsratmDeT$1sYJ9!(glU z*Bu@&&!v?#&wds1a}sUK9%E!lM^28`ROM;fd_0-tduy)=v3%1tWh9v4f92F1vLQ}L zkCM0zZ_npzh&>s9>8o%bMS8#lqkhbnB7N33MfxE)iYRmBhVLv#rA)uUhuc_xdTu`V z3(M)icEyh8=lHWnmxWVlISqGT${&A`?+=k!%`DjZbk#|I@bBb0`jEW03kd9FJ6C)+B7}zl^_FOKSS3f z9-DwL9q4z86Jms&@M%;7jz&+SSZK_@fun^y2EVjSc|X&a0l)PxeM#F4>aR&MhZtub zqQZg~b0q;AJ9jamYv9YTYyvbjLtFnHPGyDh zIelX=a((<&Jn(@m-v7yQkEoSJTMKkN0+CEv=>6Y)&NMt{Qz`L%9DMR#$pmfD!sz=L zYFnKUuB2aKV|sqeYcCQTnryo{f?q(8JqWC?_<3$Wjpso=lJjfCiWq76{?DU{&3ptI zb*qAmTr<-p%C1ULA(C-wh1>WOw>8*P_1%u0*L@S#9@qXWVXSqTqqdzWcKQLh(Segz zchGjtHfge@xxj951rtPt$hNADI0AzYD%N3YSqvaS>p@NR;9R`AZs?QEdK%k@OlR0ko1m{_d8P!YWKK}s*$qdErVNrBwW{%%~F$Flk!H*b@H4Y zN~`WN&s>VZm?I3n{Y+DROk0BPvU^0*5HmLcvcpZz;WCF|V%}Axcl0ehfGL+Ns=apF zTDPeQtJVOm=LiD1bX;GWW-JU0_l1}iHV3G3QdKjMB+5uvm+M<>&4(W;%N(F0>R_Vc zD(~g#m!07;NG8S%MkAgv*VmAd^Lws>3mygelU@1Gi3}LtS`3X1KhVQ{LEUgt&%mI^ z@)Doc@U{C0nl$|VXf|cJa(6S$K~Q${~2< zyO0pQRES;4N}D8d7FBGQq2*T2DZpN!g?NpeyYw0;lgl-Ut7|!k;`&6pjTCPtCh8D& zv%`n|396>f7Mq67Vv zdPj$DuBeeN2yq{Md<_%pYeFWTnOomfJ9uRG=INo@mLvo4fmBs)DhJlhPQwYcD9`U< zPC;^@_01hn9b~_@$X8pd$jG}Nz?-mO` zOpCz*^MV)cmFT05H2PrYl&d_F5{i{05>nd`x1@v5nro<0}J zd{vcoUqBEeprSXDjJ`~tvv3_NW80TYJm3cFD!T}QfNkI?LawI{=*AG{_7jF;f>Uw~2oA z=p8lQ@x1WkXGoT!fZ$pV2%oJIUIpVm8iv98e|+Q4wZM(pZbgMT0Osr*XXlgqg!^M2 zT|8?_Mvne;I@%@+>`YxrV4>9g$g*yfv8D(tq+m?+fHmfuz(VUqh}lrsdPyPyf92kT zm&<6sS}uQL{w0kq2{l&zdG+{Z*kkLj*$vMtW#*zFGYqTB-t}9po2FzZAbR_MU)(>d zxc>LW{pmBV01L+>I%$WmVTSqixxg?;-(7{q#={K zYdR&n-+QgI%nc}vGkenBj+^-k`m&=0$s#;!%>-?g!HuNaYQ&~92-mRBrGBnAtruFb ztkxxrNUQ#qoe1)EDXqFwvesiZr@b_GrflPqOV+y4e8~M|mzP$I`qFpq*|Hei z>@@~i>L2pPEca}QoP!XJn8rJ!y>DDT)gAo6eBy*58LJRkS0?P=A;|$$EKj4rX9_@m z+1C{Br~4Q(V?G098ci1E<-I>4(^`aMW03i!`MkR>u66tTV!hks_~m6IFLj_yT>I_) z``0`9kAL!rL_5p&=;!5s;z5m5xMqC(Q!8&_Jj)^DyZ_hR@0+4y`lVus`OQ@J*ZJ%p z{ZsFicN;Ug{DSxW3hy<_cBA8mg(mJyR>&L+x&mSnESaU%Ap!lfXK-83>yD zG&i;pFn5sPL>*xCFHKaJyG$pqz|T)15hxsr-e+j?P#-Aj=v+g+v-TsWK9W{Iy5$&} zdWZ@n#hUvz_r-l4(^)8F}3W~)c2b~MFZE5OI$GzW{)vQ z4PUZiD^>pIS4Y7*T0bJeJ(L+5lubqU@{9|FqzUPW6tvqrD5lDKZ;@ZF1jXVql(2Vg zSGHq=JagvI;*skjM*|V$x9Cl%z%+SA#%tCyLY~1$S~7j-(J%F93I%C1RnQ{h6<(Ar zI8A*2EvPT3$If-M?R$-(KTSjT9gyXnS$74Tp~e7yiSv~LEMMju6w3`$Z?WxU9XELk z_G9H6U^n-|Y>w zSA^+U_h3(EaHamcxzFY6HaTN!b8qh>dYyawciuNI7f24cw%!mb;=Uo-E>+8@M?LpK zOa~>{YWNt2d_s5)%>!ZLr?V7Inw%ugoJXIW2FLfBTbl&(zUV)t zQpc#|WSo=JyezAuyaF2A{?iIWFY4948BwXnRK#sAn<_sUzWJ6uO0MgW#gXwY2j{Sx ztwy^p@+ICcm+TQuzG|W95O}DF?|kl;?Y~~q zXqo`LTUDWXk>aSKR|rRtTM32tsefB>=rA?S+1S*?>f6-}PN_hN_}ZQRs)THS>TYa< zLX<4&!)vOi*?7A@LfMAwpTkEvU?kutBs)Cjd65{=VzvwK#-Vd+xsx^|gr?rtwlWKm zUv6GEn|m5$FS32HOHN3fS@hS=Ge7!_Tg(QXu1}V%Qv8Ze6#$4DaAV zNoV^z+a+!YI=`$L>&@p9_ubtSopfe)c6k+93Y`q+3`@fdi$w%ubaEpPp7P$-MHw9GC@-%mhHJJk z>T|gff|(dck6QSdahd01{90W4MEumPrl@f|8=SmG+&_6#!zK zC~6jN&OIq*_b@D~vwc@eTF01bsMFVR>UtOTn~U@54;TTggi(qUMk&r=$KFn`WSPHx z>cd7RdnEDTKbm>hE<7U6%yufUoU8Vv2N&BLWf^9+V3oCO9UVw0S8L>Rty(hFi*d{$ zdQ~~E^-_}`{TNQkm*W|iL zb~a+`>_z)L$C1%%*T?(1!98fty}BNhs41TK_({uIvs4FKfc0-S*l1O4ZzygmF1=IP zQKi0`KV+-L%#C)g-u?OWK%yw#+y#S~sf0&&@hUQ>J*=Ki1@w5ldAf^XaS<{89{nFwoqB-60YUGC-*L-x?@J-n!9WBzgA zp_oc)$`g?0bY0Hvi_6PKXh_mGFLI3UirIp-&x+&hCj?%JP2TXG9CM%f6MfO9(LBTK6G!fUvapCquawo| zg8jYEdZlAfddJwZMa&FtdE0v(D>Uy2oLNz|l8n1+FYuoQl1n4xN^v|Pe%DD2q8RuK zZg!!ij~|MC%wFsraH{F*$WpiRs)zD(;~FnJ9)UI!_hpva9tE1M>WwQoAD@wu6&TIP zF_Vsu&gMu}Kd8NDFlpPz8E19pGxcucQsD^Qt!Vd?@9YEbCVu|3dT?{rF(t*BaTylt z>}<_n@j%-UC%Q9oxxHU6St;jI=!qHIu=za>{*@F_uEDN3fBx5DSea|kL#+T zf0W9eMPWTm->}c*>QPKKX38(imW{~6M^!4X@Ysz<#ZUO$sCBmC(k|vj;kBtKGq8D(y_tS)+!Us9s%q z10Dx|L(PbIA$4|_7K2)DLp`&ynvEYN=xI92gUvb;Q^P|X#ovKp?DZ)kD_%!jc#};> ziS>tawi{t9ZP;?vbb^72vwP*cMb3i9rlPXAr8|E&Iafvuv9N1cReQn>_n%GuCU{fh zyP)EBJs=ldjW_z-b(SDGAHDgMzsXMj=FVh4@Jd8(!oz2j<`f4NZHrbT$l8JA!j0kC z^#{Pm9ya+tY?d9D zs!5zsN#ui7on7R9R`}$O9M>5RCcOJ|h7nla_0Eg#JkqK-TrUT}eom(D*3Cpa)Cwg?AUKmv2rWXFXWI99&qTf5c+upk3;W-m zq=Fqe0EyYl?AOc2=15v=B9nmO+ac{dx}P74nHX<%Np~Lc*+e-v4?EChrShM=ed2_6 z$;o-g^lqEeyPUPYf|4_!9C1-8<5u(&hPa7}>QZSnd#$LxU;vWBUOVO7PQ%A2d29EP zNKT)aVT&%oT_4?d+aIuS`nmTMTcX;8NsQyqP4EE8RX=H0j+t%1QCFfNUZB3(pLOEy zF+mfi=gVsb&~v#I8N7T@y?yM0QPhX+Y%Zy6ffjt5HOy|9Cys8v*f+88lX`oa&8h@@ zTE!t9Ko*FV&9!;u_-8<*9yGQq>Yex)mXj!9sO-I}{6=Y5RFea=TC|e|8%M2$C-cru zNr(ge@4n1quKGl(Zop-f5*<6jG#AS36CT)w^WT3x+Cm)qxxq^6v)GhwiMxZ^WN138$i zUTv(pnZy6~k3OLT=wPlLH`V&C;V)sfpBSo=lW@(xb!)q2cF(5s{5pT6GkQbdYYidu zzhlU9^WvC>?UK=Tkf^*#1Sz_1-}%2;hWxrPX}pO`<*FyLD!+bPUw-lrloqyOJ0ZFE z=hKZvS|^hgx^kt{fB%oBHz+M6YJu~XdiZ0g*5q%vO*%MqC8k@|%rqqoFnh?}TaHe) z9c`)5GNK{7jgomWNlAglE+4E_H8i4am!AFd9*${*D|b*5Qlt9vt ztG@B8;EhPBIfN$lmBT9kFm*BlB3Zr;BTYV6EDLQ#nU!ZYpa&;;WOL&LdgjSPc|$0R zWTO#1N9GeP>oOr=X%~R4ytSPm_BHd&)uQr zl02!}pQo^gF-^TX>bint>zrRK0(QPbCO;v|k}x(nuO8MdS4)EL=6QHp8kP%secL6h z+s-Af5S=}fnvpiaFjp5zI3y%z;~g=*eyyN?CzMKGTm1)(ck6N#w8DwjQ-t{?h!8d`z|4C6c9XDJ zJT@g=60F)jhY7?16gJ?^mcY`ilJBOarPcn;G=t<+zY>Lq6-QxZP~8`f4?O-`$o8rD zNZGX5QJRhpTh0c$yq~hKYAwi9ZOB1R=Yn;WD~YK}y(p{;MbU;Am2kfQ$Gv$57No7K zq&}ZXpD3N414zH8(?3yd+KzUq=y>N!SeZ9*znn3;RE_ zy~Sc*^Q!1CwmfSx;>mXmpuDFk^b`bHq=$%|{v#WgKjR8S`JA7pd=%SF=$`A%32g z2MlXl*3FVT8!-F;`zmQN>|~Wipof={Ryh}U%%_EZ9BX{f%hBO7!6QA;jq?1)oD}a9 zf5ASayqN}gn$=JzeM*yGG_bW1^0l(N`{c=LD@H1#O+%LobB!QCD_?*es2G1dOKD{v zoV72|ZtCT3VuTzr9=oyu`@(HC`szRv#P5wBHvqV$p?bU6ivRpu#0CU8s^4xBMt>Kb!T8(9oAHO5e=g!e z4g8rUT9uou$rBGxn>KyyiE8MIOxk^9BlM7{`x=a)P1^eRhG(;dp zVjnUd`rYb?G@CgTlcBgaR~_7ajW3H4Rh{}IQ6~(w3IiFb9=$x?$Y1ovUJFH8lzVI5hrPER53ocKGjl%*@ zBDu7;T-vA4I#L#tw-QD$mZ58;vA9Y6+*$^<0dPS*13dKFTrY0;@ys(Twr0&FS+*)Om6Ay%^BiglSIn z)bJ3x5@7@fYu!VmreI(^IsUmnv)E-f>RpXa*1_Hkax1B|tui2Kx}TqG<-M~{^$$ub z*yks~%VA)1$r%{hJx&(G$bTKF|CG0iu={WhE%$V1@wgr4s*B_#0RRv-+>^SVwYCrZ zo98@1`pZ!tS?6n0cCDGtwudkiB2S)rFNPjk673Eu^9tw(?tER1KxXg)3kOq_JYSY0 z$}j_U=7zf-{c>O&8}8OwxY68yjedqQYLvh)M+VT+g$IYAhD9npN{MjEc(*17ql?g; zWRt@JW|xKKl_yX)U4gpeDXO=_OP`5Or@vyMLtKxdj)O5Cb=C7`BK>s%i2pF*3yp*^ z8q#L0371Sh(fvk+@Nuv3Dp_T!n{VJ20^qArgv1`08{4IAllCkwLzi#$?q@oPzL$qj zzO@}6IiC0a)oDw~O&V^;%3yBbZhZE_$OAoqxl~@8lc$7+M7^?nkkyUt-)~`8>=k;m&ksJ$s5qKe#@J>a}W>k zZtrm_JR4m}#x{bMXAcTGJDvG@K|P*1fQ^T}ah|>FY1hYya_Pf>M3UdFUk* z;elp$#>KZl{&0na&6lzounGtv0x%QleWqx><%}N6Qrl3MA3QX4p0QJ;!G4*sY&aHi zyF)fFTbn6RF2^jd$UCS`n+OluE2>EuiiN^S*!WSZ03O+ah4kuEj;s1fNc$!(B% z;k*&t#afEQdi{xx_N&@2Y-l~|S(H1T__1$j;5q?ak-r*=!&wz{N5x$lB{Q}gVH-ar_^S(tQ7 zek8WB^5U|s!NWk}c@tk$#)}I0^1Qf`6A~CXABtdxVa<7DLH;IPFM3aiG^J-TE@0MA zHcXVDTIX7oBx{>GxLUfR`JmL8PBjJ)eN}`eXdNZ-bFrVKp%CL$?}^9f%TraJj8r|$ zjJaRYg+rI2^R(owvWMv_1b#Gl+q@cWLSY1}S{aDOKTY$d0HIoQK-7X+xn$&vN+0khqY}jUn5fVRKl9pLc0hC=6ZwSqnI!S%U zA;i?r`yhogZ6SmNqOiM!B@QRW$6L@Ji!D(ngX7|#I**_1?4q!;&$|1-SPfaho_bnAv1S=8>O-H;kA3hBn?W|_1u3`tmJ`k)fc2HM74kXzI2>|-1LkM!HWa{ zLK(YzMikmz_Rf5U^jfR4Q06Y2xrZ7`tNKRkHuz3^cFLz*+SYi(=>yA9Rg6m1W&NU! zwA>}93gD45#TpdqC}&c*dIl|rlcX&_N5Sj`+xVW~#O=<_Q%n z2sg7ZHzz*EEkSIlnj$tDX0Oe{&7hAjyezvcW~7-W>Y$I^rA1q8Iz;WNd_UxZ;9CvJ zxTv4xIiG^aA-SzuVc>45#q9J>s&R}hDMt(C$$gDJD0Ps+nnK^(S)se&FkF0v?bkur z-gso`hiF%&Gg9x?F@_&`b7vXt{pbnRsh%z1_@NV6+ml$mb`=#OKd*q8@e~4KE7f(T zye!K3t}$X=M`|Z3CoS5{(yFM) zcD7~|rJ?hF`_3{HGoD0;5$*G55s4l(THZWa-tKCf9%6rt60*}GBHndkl*S}}qV*b{jvKRT84AY0zsZ%oZk{P6oy&$#-L(74Fn_`VBzO@7`^a!5Q(85()i zQE#4%Je&hAX|@NGhVy!{W7ZOys)D3tit+4wT$9%+SSBnZq|=z?TzG~3>sGzi0B=g* zRaiU#{(K zROq0%-j2Hy&=EDVOUh8_eP|NBgsRY@4qwT(Jwt3v25j^a-keSQsP(eJSWMEw)l{vZ;EJ~^a(^Wo(w-s%U%{_)?|6H;Glp5u+iS~`f=e`NBD;MGGI3aS=d1uY z;+vWZ=fLmByg%+@^yv&@%N`ypnVcB&+O7V^yf))_q^F9BHf3}~GL?6fHowoJlf`9i z-bf@`MlE2|%UDPl$v4yf_jRK*EV19skIoZAUH zWWswD5BP`~UG<0N+o?)%&eiATGByDR0z+w4N^Tbt^ftHvb(**8iH)e42z#Wy5KjMXzppB4Wx-pn{2 zMLb3%fnBt0DzgZGiKchXyor>)obY5bLz#ERR0~-5A}F_{ko=*Pku8P@nJ zNNTrT{#ae(bOA�q9)R1EbXq!$jjtHo?@ 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 \| recent <5min\|1hr\|1day> \| sequence-number \| all] | | | 6.2 | show event [ detail \| summary \| severity \| timestamp \| recent <5min\|1hr\|1day> \| sequence-number ] | | -| 6.3 | show event profile | | | 6.4 | alarm acknowledge | | | 6.5 | logging server [ log \| event ] | default is 'log' | -| 6.6 | event profile [ default \| name-of-file ] | | | 7 | gNMI subscription | | | 7.1 | Subscribe to openconfig Event container and Alarm container. All events and alarms published to gNMI subscribed clients. | | | 8 | Clear all events | | @@ -256,11 +254,6 @@ Event Management Framework allows applications to store "state" of the system fo Event-DB service in eventd container receives and processes the received events from zmqproxy service. Event consumer manages received events, updates event table, alarm table, event_stats table and alarm_stats tables. -Operator can chose to change properties of events with the help of event profile. Default -event profile is available at */etc/evprofile/default.json*. User can download the default event profile, -modify and upload it back to the switch to apply it. -Through event profile, user can change severity of any event and also can enable/disable a event. - Through CLI, REST or gNMI, event table and alarm table can be retrieved using various filters. ### 3.1.1 Event Producers @@ -270,25 +263,23 @@ For one-shot events, applications need to provide event-id (name), (source), dyn For alarms, applications need to provide event-id (name ), source, dynamic message, and event action (RAISE_ALARM / CLEAR_ALARM / ACK_ALARM /UNACK_ALARM). The ACK_ALARM/UNACK_ALARM action types are used only by mgmt-framework to provide the functionality to acknowledge/unacknowledge the alarms through NBI. -Eventd maintains a json file of events and alarms at sonic-eventd/etc/evprofile/default.json. This is the default event profile that gets installed on the device at /etc/evprofile/default.json. +Eventd maintains a json file of events and alarms at sonic-eventd/var/evprofile/default.json. This is the default event profile that gets installed on the device at /etc/evprofile/default.json. Developers of new events or alarms need to update this file by declaring name and other characteristics - severity, enable flag and static message that gets appended with dynamic message. ``` { "__README__" : "This is default map of events that eventd uses. Developer can modify this file and send - SIGINT to eventd to make it read and use the updated file. Alternatively developer can test - the new event by adding it to a custom event profile and use 'event profile ' command - to apply that profile without sending SIGINT to eventd. Developer need to commit default.json file - with the new event after testing it out. + SIGINT to eventd to make it read and use the updated file. + Developer need to commit default.json file with the new event after testing it out. Supported severities are: CRITICAL, MAJOR, MINOR, WARNING and INFORMATIONAL. Supported enable flag values are: true and false.", "events":[ { - "name" : "CUSTOM_EVPROFILE_CHANGE", - "revision" : 0, - "severity" : "INFORMATIONAL", - "enable" : "true", - "message" : "Custom Event Profile is applied." + "name" : "SYSTEM_STATUS", + "revision" : 0, + "severity" : "INFORMATIONAL", + "enable" : "true", + "message" : "System Status Information" }, { "name": "TEMPERATURE_EXCEEDED", @@ -335,7 +326,6 @@ e.g., Sensor temperature critical high The event consumer is a class in EventDB service that processes the incoming events. On intitialization, event consumer reads */etc/evprofile/default.json* and builds an internal map of events, called *static_event_map*. -It then verifies if there was a custom event profile configured and merges its contents to static_event_map built from default event profile. It then subscribes to zmqproxy for events. On reading the event, using the event-id in the record, event consumer fetches static information from *static_event_map*. @@ -462,93 +452,10 @@ to make sure it is not a flood. If it is found to be same event/alarm, the newly ### 3.1.5 Event Profile The Event profile contains mapping between event-id and severity of the event, enable flag. -Through event profile, operator can change severity of a particular event. And can also enable/disable -a particular event. +Through event profile, operator can set severity and enable/disable an event. The default profile exists at */etc/evprofile/default.json* -By default, every event is enabled. The severity of event is decided by developer while adding the event. -``` -{ - "__README__" : "This is default map of events that eventd uses. Developer can modify this file and send - SIGINT to eventd to make it read and use the updated file. Alternatively developer can test - the new event by adding it to a custom event profile and use 'event profile ' command - to apply that profile without sending SIGINT to eventd. Developer need to commit default.json file - with the new event after testing it out. - Supported severities are: CRITICAL, MAJOR, MINOR, WARNING and INFORMATIONAL. - Supported enable flag values are: true and false.", - "events":[ - { - "name" : "CUSTOM_EVPROFILE_CHANGE", - "revision" : 0, - "severity" : "INFORMATIONAL", - "enable" : "true", - "message" : "Custom Event Profile is applied." - }, - { - "name": "TEMPERATURE_EXCEEDED", - "revision" : 0, - "severity": "CRITICAL", - "enable": "true" - "message" : "Temperature threshold is 75 degrees." - } - ] -} -``` -User can download the default event profile to a remote host. User can modify characteristics of -some/all events in the profile and can upload it back to the switch and place the file at /etc/evprofile/. - -The uploaded profile will be called custom event profile. - -An example of custom event profile is as below. -With this particular custom event profile, user wants to -- change severity of CUSTOM_EVPROFILE_CHANGE event (severity changed from INFORMATIONAL to MAJOR) -- suppress the TEMPERATURE_EXCEEDED alarm (enable flag is changed from true to false) -- introduce new alarm by name DUMMY_ALARM (there should be an application to raise/clear this new alarm). -``` -{ - "events": [ - { - "name" : "CUSTOM_EVPROFILE_CHANGE", - "revision" : 0, - "severity" : "MAJOR", - "enable" : "true", - }, - { - "name": "TEMPERATURE_EXCEEDED", - "revision" : 0, - "severity": "CRITICAL", - "enable": "false" - }, - { - "name" : "DUMMY_ALARM", - "revision": 0 - "severity" : "WARNING", - "enable" : "true", - } - ] -} -``` - -User can have multiple custom profiles and can select any of the profiles under /etc/evprofile/ using 'event profile' command. - -The framework will sanity check the user selected profile and merges it map of events *static_event_map* maintained by eventd. - -After a successful sanity check, the framework generates an event indicating that a new profile is in effect. - -If there are any outstanding alarms in the alarm table, the framework removes those records for which enable is set to false in the new profile. -Severity counters in ALARM_STATS are reduced accordingly. - -Eventd starts using the merged map of characteristics for the all the newly generated events. A CUSTOM_EVPROFILE_CHANGE event is generated. - -The event profile is upgrade and downgrade compatible by accepting only those attributes that are *known* to eventd. -All the other attributes will remain to their default values. - -Sanity check rejects the profile if attributes contains values that are not known to eventd. - -Config Migration hooks will be used to persist the current active profile across an upgrade. - -The profile can also be applied through ztp. ### 3.1.6 CLI The show CLI require many filters with range specifiers. @@ -612,20 +519,24 @@ revision : Revision of the event {uint64} 127.0.0.1:6379[6]> hgetall "EVENT|1" - 1) "text" - 2) "handle_custom_evprofile: Custom Event Profile x.json is applied." - 3) "type-id" - 4) "CUSTOM_EVPROFILE_CHANGE" - 5) "id" - 6) "1" - 7) "time-created" - 8) "1621459327118629520" - 9) "resource" -10) "/etc/evprofile/x.json" +1) "time-created" +2) "1696888244771929600" +3) "type-id" +4) "PSU_POWER_STATUS" +5) "text" +6) "PSU 1 is out of power." +7) "action" +8) "RAISE" +9) "resource" +10) "PSU 1" 11) "severity" 12) "WARNING" -13) "Revision" -14)"0" +13) "id" +14) "21" +15) "acknowledged" +16) "false" +17) "revision" +18) "0" ``` Schema for EVENT_STATS table is as follows: @@ -737,8 +648,6 @@ The following filters are supported: Event Table (EVENT) and Alarm Table (ALARM) are used to house events and alarms respectively. To maintain various statistics of events, these two tables are used : EVENT_STATS and ALARM_STATS. -EVPROFILE table is used by mgmt-framework to communicate name of the custom event profile when configured through NBI. -Eventd reads the file name from this table and merges it with its static_event_map. ## 3.3 User Interface ### 3.3.1 Data Models @@ -888,22 +797,6 @@ module: sonic-alarm +--ro acknowledge-time? event:timeticks64 ``` -Following is for sonic yang to support event profiles. -``` -module: sonic-evprofile - - rpcs: - +---x get-evprofile - | +--ro output - | +--ro file-name? string - | +--ro file-list* string - +---x set-evprofile - +---w input - | +---w file-name? string - +--ro output - +--ro status? string -``` - openconfig alarms yang is defined [here](https://github.com/openconfig/public/blob/master/release/models/system/openconfig-alarms.yang) ### 3.3.2 CLI @@ -925,11 +818,6 @@ Un-acknowledging an alarm updates alarm statistics and thereby applications like The alarm record in the ALARM table is marked with acknowledged field set to false. There is acknowledge-time field that indicates when that alarm is un-acknowledged. -``` -sonic# event profile -``` -The command takes name of specified file, validates it for its syntax and values; merges it with its internal static map of events *static_event_map*. - ``` sonic# clear event ``` @@ -939,66 +827,58 @@ Eventd generates an event informing that event table is cleared. #### 3.3.2.3 Show Commands ``` -sonic# show event profile --------------------------- -Active Event Profile --------------------------- -myProfile.json --------------------------- -Available Event Profiles --------------------------- -default.json -myProfile.json -userProfile.json - sonic# show event [ details | summary | severity | start end | recent <5min|60min|24hr> | id | from to ] 'show event' commands would display all the records in EVENT table. sonic# show event ----------------------------------------------------------------------------------------------------------------------------- -Id Action Severity Name Timestamp Description ----------------------------------------------------------------------------------------------------------------------------- -1 - WARNING CUSTOM_EVPROFILE_CHANGE 2021-05-19T21:38:27.455Z handle_custom_evprofile: Custom Event Profile x.json is applied. -2 RAISE CRITICAL DUMMY_ALARM 2021-05-19T21:39:31.622Z signalHandler: Raising simulated alarm -3 CLEAR CRITICAL DUMMY_ALARM 2021-05-19T21:42:34.371Z signalHandler: Clearing simulated alarm -4 RAISE CRITICAL DUMMY_ALARM 2021-05-19T21:46:14.371Z signalHandler: Raising simulated alarm -5 ACKNOWLEDGE CRITICAL DUMMY_ALARM 2021-05-19T21:48:05.845Z Alarm id 4 ACKNOWLEDGE. -6 UNACKNOWLEDGE CRITICAL DUMMY_ALARM 2021-05-19T21:53:24.484Z Alarm id 4 UNACKNOWLEDGE. -7 CLEAR CRITICAL DUMMY_ALARM 2021-05-19T21:55:54.977Z signalHandler: Clearing simulated alarm + +---------------------------------------------------------------------------------------------------- +Id Action Severity Name Timestamp +---------------------------------------------------------------------------------------------------- +1 RAISE WARNING PSU_POWER_STATUS 2023-10-09T21:50:44.771Z +2 - INFORMATIONAL SYSTEM_STATUS 2023-10-09T21:51:02.784Z +3 RAISE CRITICAL DUMMY_ALARM 2023-15-19T21:39:31.622Z +4 CLEAR CRITICAL DUMMY_ALARM 2023-15-19T21:42:34.371Z +5 RAISE CRITICAL DUMMY_ALARM 2023-15-19T21:46:14.371Z +6 ACKNOWLEDGE CRITICAL DUMMY_ALARM 2023-15-19T21:48:05.845Z +7 UNACKNOWLEDGE CRITICAL DUMMY_ALARM 2023-15-19T21:53:24.484Z +8 CLEAR CRITICAL DUMMY_ALARM 2023-15-19T21:55:54.977Z + sonic# show event details ----------------------------------------------- -Event Details - 1 + +--------------------------------------------- +Event Details - 1 ---------------------------------------------- Id: 1 -Revision: 0 -Action: - +Action: RAISE Severity: WARNING -Type: CUSTOM_EVPROFILE_CHANGE -Timestamp 2021-05-19T21:38:27.455Z -Description: handle_custom_evprofile: Custom Event Profile x.json is applied. -Source: /etc/evprofile/x.json - +Revision: 0 +Type: PSU_POWER_STATUS +Timestamp: 2023-10-09T21:50:44.771Z +Description: PSU 1 is out of power. +Source: PSU 1 + ---------------------------------------------- -Event Details - 2 +Event Details - 2 ---------------------------------------------- -Id: 2 -Revision: 1 -Action: RAISE -Severity: CRITICAL -Type: DUMMY_ALARM -Timestamp 2021-05-19T21:39:31.622Z -Description: signalHandler: Raising simulated alarm -Source: simulation +Id: 2 +Action: RAISE +Severity: INFORMATIONAL +Revision: 0 +Type: SYSTEM_STATUS +Timestamp 2023-10-09T21:51:02.784Z +Description: System is ready +Source: system_status ---------------------------------------------- Event Details - 3 ---------------------------------------------- Id: 3 -Revision: 0 Action: CLEAR Severity: CRITICAL +Revision: 1 Type: DUMMY_ALARM Timestamp 2021-05-19T21:42:34.371Z Description: signalHandler: Clearing simulated alarm @@ -1124,10 +1004,6 @@ sonic REST links: * /restconf/data/sonic-event:sonic-event-history/EVENT/EVENT_LIST * /restconf/data/sonic-event:sonic-event-history/EVENT_STATS/EVENT_STATS_LIST * /restconf/data/sonic-alarm:sonic-alarm/ALARM/ALARM_LIST -* /restconf/data/sonic-alarm:sonic-alarm/ALARM_STATS/ALARM_STATS_LIST -* /restconf/operations/sonic-evprofile:get-evprofile -* /restconf/operations/sonic-evprofile:set-evprofile -* /restconf/operations/sonic-alarm:acknowledge-alarms * /restconf/operations/sonic-alarm:unacknowledge-alarms openconfig REST links: @@ -1137,15 +1013,35 @@ openconfig REST links: * /restconf/data/openconfig-system:system/openconfig-alarms-ext:alarm-stats -# 4 Warm Boot Support -## 4.1 Application warm boot -Applications confirming to the warm boot, should have stored their state and compare current values against previous values. +# 4 Persistence +Alarms and Events are stored in ALARM and EVENT tables in a separate Redis DB instance called EventDB. +This instance is configured to periodically persist the EventDB to disk. +It is configured to persist 75 redis db events at 180 seconds. This is equal to ~5-6 Sonic Events. + + +## 4.1 Warm reboot +### 4.1.1 Application restart +Applications confirming to restart, should store their state and compare current values against previous values. Such compliant application also "remembers" that it raised an event before for a specific condition. They would -* not raise alarms/events for the same condition that it raised pre warm boot +* not raise alarms/events for the same condition that it raised pre restart. * clear those alarms once current state of a particular condition is recovered (by comparing against the stored state). -## 4.2 eventd warm boot +### 4.1.2 System warm reboot +On system warm reboot the current EventDB is persisted on disk without the ALARM and ALARM_STATS table. Applications should check the condition after restart, and raise the alarm if condition exists. +Only EVENT table is persisted on disk across system warmboot. This overwrites the DB file from periodic persistence. + + +## 4.2 Fast reboot +On system fast reboot the current EVENT and EVENT_STATS table from EventDB are persisted on disk. ALARM and ALARM_STATS table are not persisted. Applications have to raise alarm on restart if condition exists. +The Event DB is stored on disk prior to control plane protocol services shutdown, to not impact fast-boot times. This overwrites the DB from periodic persistence. + +## 4.3 Cold reboot +The current EVENT and EVENT_STATS table are persisted on disk across cold boot. ALARM and ALARM_STATS table are not persisted, and applications have to raise alarm on restart if condition exists. This overwrites the DB from periodic persistence. + +## 4.4 Power reset +In power reset, the EventDB is loaded from the DB on disk. This DB is from periodic persistence. The ALARM and ALARM_STATS table is removed from the table. +Applications have to raise alarm on restart if condition exists. In this case, there can be events missing from previous boot, as the reset may have happened within the periodic persistence timer interval. # 5 Scalability @@ -1167,10 +1063,5 @@ The second command displays all the alarms that are waiting to be cleared by app - Verify wrap around for EVENT table ( change manifest file to a lower range and trigger that many events ) - Verify sequence-id for events is persistent by restarting - Verify counters by raising various alarms with different severities -- Change severity of an event through custom event profile and verify it is logged at specified severity -- Change enable/disable of an event through custom event profile and verify it is suppressed -- Verify custom event profile with an invalid severity is rejected -- Verify custom event profile with an invalid enable/disable flag is rejected -- Verify custom event profile is persisted after a reboot - Verify various show commands - Verify 'logging-server event' command forwards only event log messages to the host