Files
kubernetes-event-exporter/pkg/exporter/sync_registry.go
Mustafa Akın f9335bda24 Updated packages, tidied and changed package name from opsgenie to resmoio (#45)
* Updated packages, tidied and changed package name from opsgenie to resmoio

* Handle removal of clusterName from API and leader election api change

* Update Dockerfile Go to 1.19

* Test case for parsing minCount properly for #43

* more extensive test case to also match apiVersion config
2022-12-19 10:45:46 +03:00

37 lines
940 B
Go

package exporter
import (
"context"
"github.com/resmoio/kubernetes-event-exporter/pkg/kube"
"github.com/resmoio/kubernetes-event-exporter/pkg/sinks"
"github.com/rs/zerolog/log"
)
// SyncRegistry is for development purposes and performs poorly and blocks when an event is received so it is
// not suited for high volume & production workloads
type SyncRegistry struct {
reg map[string]sinks.Sink
}
func (s *SyncRegistry) SendEvent(name string, event *kube.EnhancedEvent) {
err := s.reg[name].Send(context.Background(), event)
if err != nil {
log.Debug().Err(err).Str("sink", name).Str("event", string(event.UID)).Msg("Cannot send event")
}
}
func (s *SyncRegistry) Register(name string, sink sinks.Sink) {
if s.reg == nil {
s.reg = make(map[string]sinks.Sink)
}
s.reg[name] = sink
}
func (s *SyncRegistry) Close() {
for name, sink := range s.reg {
log.Info().Str("sink", name).Msg("Closing sink")
sink.Close()
}
}