[Issue #22] Add EventBroadcaster metrics (#49)
All checks were successful
CI / build (push) Successful in 19s
All checks were successful
CI / build (push) Successful in 19s
This commit was merged in pull request #49.
This commit is contained in:
@@ -79,6 +79,8 @@ func (neb *NATSEventBus) Subscribe(namespacePattern string) <-chan *Event {
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("[NATSEventBus] Failed to subscribe to NATS subject %s: %v", subject, err)
|
||||
// Record subscription error
|
||||
neb.metrics.RecordSubscribeError(namespacePattern)
|
||||
} else {
|
||||
neb.subscriptions = append(neb.subscriptions, sub)
|
||||
if IsWildcardPattern(namespacePattern) {
|
||||
@@ -147,9 +149,11 @@ func (neb *NATSEventBus) deliverToWildcardSubscribers(pattern string, event *Eve
|
||||
if sub.pattern == pattern {
|
||||
select {
|
||||
case sub.ch <- event:
|
||||
// Event delivered
|
||||
// Event delivered from NATS
|
||||
neb.metrics.RecordReceive(pattern)
|
||||
default:
|
||||
// Channel full, skip this subscriber (non-blocking)
|
||||
neb.metrics.RecordDroppedEvent(pattern)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -172,11 +176,13 @@ func (neb *NATSEventBus) Publish(namespaceID string, event *Event) {
|
||||
data, err := json.Marshal(eventMsg)
|
||||
if err != nil {
|
||||
log.Printf("[NATSEventBus] Failed to marshal event for NATS: %v", err)
|
||||
neb.metrics.RecordPublishError(namespaceID)
|
||||
return
|
||||
}
|
||||
|
||||
if err := neb.nc.Publish(subject, data); err != nil {
|
||||
log.Printf("[NATSEventBus] Failed to publish event to NATS: %v", err)
|
||||
neb.metrics.RecordPublishError(namespaceID)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user