Skip to content

Commit 2112950

Browse files
events: filter spammy events for the same object and reason
Signed-off-by: Steve Kuznetsov <[email protected]>
1 parent 4f56ce8 commit 2112950

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

pkg/lib/event/event.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package event
22

33
import (
4+
"fmt"
5+
46
v1 "k8s.io/api/core/v1"
57
kscheme "k8s.io/client-go/kubernetes/scheme"
68
typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
@@ -23,7 +25,19 @@ func init() {
2325
// NewRecorder returns an EventRecorder type that can be
2426
// used to post Events to different object's lifecycles.
2527
func NewRecorder(event typedcorev1.EventInterface) (record.EventRecorder, error) {
26-
eventBroadcaster := record.NewBroadcaster()
28+
eventBroadcaster := record.NewBroadcasterWithCorrelatorOptions(record.CorrelatorOptions{
29+
BurstSize: 10,
30+
QPS: 1. / 300,
31+
SpamKeyFunc: func(event *v1.Event) string {
32+
return fmt.Sprintf(
33+
"%s/%s/%s/%s",
34+
event.InvolvedObject.Kind,
35+
event.InvolvedObject.Namespace,
36+
event.InvolvedObject.Name,
37+
event.Reason,
38+
)
39+
},
40+
})
2741
eventBroadcaster.StartLogging(klog.Infof)
2842
eventBroadcaster.StartRecordingToSink(&typedcorev1.EventSinkImpl{Interface: event})
2943
recorder := eventBroadcaster.NewRecorder(s, v1.EventSource{Component: component})

0 commit comments

Comments
 (0)