Skip to content

Commit

Permalink
Event and alarm management (#17949)
Browse files Browse the repository at this point in the history
* Support for event persistence in redis-db.

* Updates

* Updates including fix to  eventdb in test enviroment.

* Add sonic yang to model event and alarm table.
remove ack, noack from sonic-common-event yang.

* Add event/alarm  persistence related testscases

* Remove file eventdb_ut.cpp.

* Updates to eventdb testsuite.

* Revert changes to existing eventd UT.
Set eventdb testcases as separate test binary.
Skip testcase execution if DB connection failure.

* Commit test related config files.
  • Loading branch information
bhaveshdell committed Aug 23, 2024
1 parent 4913fab commit 10f0fe8
Show file tree
Hide file tree
Showing 24 changed files with 1,866 additions and 10 deletions.
6 changes: 6 additions & 0 deletions dockers/docker-database/database_config.json.j2
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,12 @@
"instance" : {% if include_remote_db %} "remote_redis" {% else %} "redis" {% endif %}
}
{% endif %}
,
"EVENT_DB" : {
"id" : 19,
"separator": "|",
"instance" : "redis"
}
},
"VERSION" : "1.0"
}
10 changes: 10 additions & 0 deletions dockers/docker-eventd/supervisord.conf
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,13 @@ stderr_logfile=syslog
dependent_startup=true
dependent_startup_wait_for=start:exited

[program:eventdb]
command=/usr/bin/eventdb
priority=3
autostart=false
autorestart=false
stdout_logfile=syslog
stderr_logfile=syslog
dependent_startup=true
dependent_startup_wait_for=start:exited

13 changes: 10 additions & 3 deletions files/build_templates/docker_image_ctl.j2
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,16 @@ function preStartAction()
# Load redis content from /host/warmboot/dump.rdb
docker cp $WARM_DIR/dump.rdb database$DEV:/var/lib/redis/dump.rdb
else
# Create an emtpy file and overwrite any RDB if already there
echo -n > /tmp/dump.rdb
docker cp /tmp/dump.rdb database$DEV:/var/lib/redis/
COLD_DIR=/host/coldboot
#In case of cold reboot, load redis content from /host/coldboot/dump.rdb
if [[ -f $COLD_DIR/dump.rdb ]]; then
#Load redis content from /host/coldboot/dump.rdb
docker cp $COLD_DIR/dump.rdb database$DEV:/var/lib/redis/dump.rdb
else
# Create an emtpy file and overwrite any RDB if already there
echo -n > /tmp/dump.rdb
docker cp /tmp/dump.rdb database$DEV:/var/lib/redis/
fi
fi
fi
{%- elif docker_container_name == "pde" %}
Expand Down
17 changes: 14 additions & 3 deletions src/sonic-eventd/Makefile
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
RM := rm -rf
EVENTD_TARGET := eventd
EVENTD_TEST := tests/tests
EVENTDB_TEST := tests/eventdb
EVENTD_TOOL := tools/events_tool
EVENTD_PUBLISH_TOOL := tools/events_publish_tool.py
RSYSLOG-PLUGIN_TARGET := rsyslog_plugin/rsyslog_plugin
RSYSLOG-PLUGIN_TEST := rsyslog_plugin_tests/tests
EVENTD_MONIT := tools/events_monit_test.py
EVENTD_MONIT_CONF := tools/monit_events
EVENTDB_TARGET := eventdb
EVENTDB_DEFAULT_PROFILE := var/evprofile/default.json
EVENTDB_PROF := etc/eventd.json

CP := cp
MKDIR := mkdir
Expand All @@ -19,7 +23,7 @@ PWD := $(shell pwd)

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS) $(OBJS)
-include $(C_DEPS) $(OBJS) $(EVENTDB_OBJS)
endif
endif

Expand All @@ -31,10 +35,11 @@ endif

all: sonic-eventd eventd-tests eventd-tool rsyslog-plugin rsyslog-plugin-tests

sonic-eventd: $(OBJS)
sonic-eventd: $(OBJS) $(EVENTDB_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: G++ Linker'
$(CC) $(LDFLAGS) -o $(EVENTD_TARGET) $(OBJS) $(LIBS)
$(CC) $(LDFLAGS) -o $(EVENTDB_TARGET) $(EVENTDB_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '

Expand All @@ -52,12 +57,14 @@ rsyslog-plugin: $(RSYSLOG-PLUGIN_OBJS)
@echo 'Finished building target: $@'
@echo ' '

eventd-tests: $(TEST_OBJS)
eventd-tests: $(TEST_OBJS) $(EVENTDB_TEST_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: G++ Linker'
$(CC) $(LDFLAGS) -o $(EVENTD_TEST) $(TEST_OBJS) $(LIBS) $(TEST_LIBS)
$(CC) $(LDFLAGS) -o $(EVENTDB_TEST) $(EVENTDB_TEST_OBJS) $(LIBS) $(TEST_LIBS)
@echo 'Finished building target: $@'
$(EVENTD_TEST)
$(EVENTDB_TEST)
@echo 'Finished running tests'
@echo ' '

Expand All @@ -73,12 +80,16 @@ rsyslog-plugin-tests: $(RSYSLOG-PLUGIN-TEST_OBJS)
install:
$(MKDIR) -p $(DESTDIR)/usr/bin
$(MKDIR) -p $(DESTDIR)/etc/monit/conf.d
$(MKDIR) -p $(DESTDIR)/etc/evprofile
$(CP) $(EVENTD_TARGET) $(DESTDIR)/usr/bin
$(CP) $(EVENTD_TOOL) $(DESTDIR)/usr/bin
$(CP) $(EVENTD_PUBLISH_TOOL) $(DESTDIR)/usr/bin
$(CP) $(RSYSLOG-PLUGIN_TARGET) $(DESTDIR)/usr/bin
$(CP) $(EVENTD_MONIT) $(DESTDIR)/usr/bin
$(CP) $(EVENTD_MONIT_CONF) $(DESTDIR)/etc/monit/conf.d
$(CP) $(EVENTDB_TARGET) $(DESTDIR)/usr/bin
$(CP) $(EVENTDB_PROF) $(DESTDIR)/etc/eventd.json
$(CP) $(EVENTDB_DEFAULT_PROFILE) $(DESTDIR)/etc/evprofile/default.json

deinstall:
$(RM) -rf $(DESTDIR)/usr
Expand Down
3 changes: 3 additions & 0 deletions src/sonic-eventd/debian/sonic-eventd.install
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
usr/bin/eventd
usr/bin/eventdb
usr/bin/events_tool
usr/bin/events_publish_tool.py
etc/evprofile/default.json
etc/eventd.json
5 changes: 5 additions & 0 deletions src/sonic-eventd/etc/eventd.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"__README__": "Specify size of event history table. Whichever limit is hit first, eventd wraps event history table around and deletes older records.",
"max-records": 40000,
"max-days": 30
}
Loading

0 comments on commit 10f0fe8

Please sign in to comment.