class EventBuffer(object): def __init__(self, capacity): self._capacity = capacity self._events = [] self._summarizer = EventSummarizer() self._exceeded_capacity = False def add_event(self, event): if len(self._events) >= self._capacity: if not self._exceeded_capacity: log.warning("Event queue is full-- dropped an event") self._exceeded_capacity = True else: self._events.append(event) self._exceeded_capacity = False def add_to_summary(self, event): self._summarizer.summarize_event(event) def get_payload(self): return FlushPayload(self._events, self._summarizer.snapshot()) def clear(self): self._events = [] self._summarizer.clear()
class EventBuffer: def __init__(self, capacity): self._capacity = capacity self._events = [] self._summarizer = EventSummarizer() self._exceeded_capacity = False self._dropped_events = 0 def add_event(self, event): if len(self._events) >= self._capacity: self._dropped_events += 1 if not self._exceeded_capacity: log.warning( "Exceeded event queue capacity. Increase capacity to avoid dropping events." ) self._exceeded_capacity = True else: self._events.append(event) self._exceeded_capacity = False def add_to_summary(self, event): self._summarizer.summarize_event(event) def get_and_clear_dropped_count(self): dropped_count = self._dropped_events self._dropped_events = 0 return dropped_count def get_payload(self): return FlushPayload(self._events, self._summarizer.snapshot()) def clear(self): self._events = [] self._summarizer.clear()