Skip to content

Commit

Permalink
feat: logging of f2s events in eventmanager
Browse files Browse the repository at this point in the history
  • Loading branch information
butschi84 committed Dec 12, 2023
1 parent 19f9175 commit 6c06496
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
2 changes: 1 addition & 1 deletion f2soperator/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ f2s:
- settings:view
- settings:update
kafka:
enabled: true
enabled: false
brokers:
- 192.168.2.41:30051
- 192.168.2.42:30052
Expand Down
18 changes: 18 additions & 0 deletions f2soperator/state/eventmanager/main.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
package eventmanager

import (
"butschi84/f2s/services/logger"
"fmt"
"time"

"github.com/google/uuid"
)

var logging *logger.F2SLogger

func NewEventManager() *EventManager {

// initialize logging
logging = logger.Initialize("eventmanager")

logging.Info("initializing new eventmanager")
eventmanager := &EventManager{
eventChannel: make(chan Event),
LastEvents: make([]PrettyEvent, 0, 100),
Expand All @@ -21,11 +30,14 @@ func NewEventManager() *EventManager {

// function to publish a new event on eventmanager
func (em *EventManager) Publish(event Event) {
logging.Info(fmt.Sprintf("publish new event (type: '%s', uid: '%s', description: '%s')", string(event.Type), event.UID, event.Description))
logging.Event(fmt.Sprintf("uid=%s type=%s description='%s'", event.UID, event.Type, event.Description))
em.eventChannel <- event
}

// function to generate a random uuid
func (em *EventManager) GenerateUUID() string {

// Generate a new random UUID
uuid := uuid.New()

Expand All @@ -39,6 +51,7 @@ func (em *EventManager) Subscribe(handler EventHandler) {

// start event manager
func (em *EventManager) Start() {
logging.Info("start eventhandling in async function")
go func() {
for {
event := <-em.eventChannel
Expand All @@ -57,13 +70,18 @@ func (e *EventManager) bufferAddEvent(event Event) {
Timestamp: time.Now(),
}

logging.Info(fmt.Sprintf("add event '%s' to buffer", event.UID))

// Shift existing events to the right
n := len(e.LastEvents)
logging.Info(fmt.Sprintf("current buffer length: %d", n))
if n < 100 {
logging.Debug("buffer not full yet. just append new event to buffer at position 0")
// If the array is not full, increase its size
e.LastEvents = append(e.LastEvents, PrettyEvent{})
copy(e.LastEvents[1:], e.LastEvents[:n])
} else {
logging.Debug("buffer is full (100 items). drop oldest event and append new event at position 0")
// If the array is already full, drop the last event
copy(e.LastEvents[1:], e.LastEvents[:n-1])
}
Expand Down

0 comments on commit 6c06496

Please sign in to comment.