EventCorrelate filters, aggregates, counts, and de-duplicates all incoming events
(newEvent *v1.Event)
| 491 | |
| 492 | // EventCorrelate filters, aggregates, counts, and de-duplicates all incoming events |
| 493 | func (c *EventCorrelator) EventCorrelate(newEvent *v1.Event) (*EventCorrelateResult, error) { |
| 494 | if newEvent == nil { |
| 495 | return nil, fmt.Errorf("event is nil") |
| 496 | } |
| 497 | aggregateEvent, ckey := c.aggregator.EventAggregate(newEvent) |
| 498 | observedEvent, patch, err := c.logger.eventObserve(aggregateEvent, ckey) |
| 499 | if c.filterFunc(observedEvent) { |
| 500 | return &EventCorrelateResult{Skip: true}, nil |
| 501 | } |
| 502 | return &EventCorrelateResult{Event: observedEvent, Patch: patch}, err |
| 503 | } |
| 504 | |
| 505 | // UpdateState based on the latest observed state from server |
| 506 | func (c *EventCorrelator) UpdateState(event *v1.Event) { |