From f3bc435341de5a99eaa13b36780a4c3e052424cb Mon Sep 17 00:00:00 2001 From: Victor Gavro Date: Thu, 29 Feb 2024 06:18:31 +0200 Subject: [PATCH] Added possibility not to forward _make_packet errors (#187) Signed-off-by: Victor Gavro Co-authored-by: Inada Naoki --- fluent/sender.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fluent/sender.py b/fluent/sender.py index 8770dcd..320ce78 100644 --- a/fluent/sender.py +++ b/fluent/sender.py @@ -52,6 +52,8 @@ def __init__( buffer_overflow_handler=None, nanosecond_precision=False, msgpack_kwargs=None, + *, + forward_packet_error=True, **kwargs, ): """ @@ -65,6 +67,7 @@ def __init__( self.verbose = verbose self.buffer_overflow_handler = buffer_overflow_handler self.nanosecond_precision = nanosecond_precision + self.forward_packet_error = forward_packet_error self.msgpack_kwargs = {} if msgpack_kwargs is None else msgpack_kwargs self.socket = None @@ -81,11 +84,11 @@ def emit(self, label, data): return self.emit_with_time(label, cur_time, data) def emit_with_time(self, label, timestamp, data): - if self.nanosecond_precision and isinstance(timestamp, float): - timestamp = EventTime(timestamp) try: bytes_ = self._make_packet(label, timestamp, data) except Exception as e: + if not self.forward_packet_error: + raise self.last_error = e bytes_ = self._make_packet( label, @@ -129,6 +132,8 @@ def _make_packet(self, label, timestamp, data): tag = ".".join((self.tag, label)) if self.tag else label else: tag = self.tag + if self.nanosecond_precision and isinstance(timestamp, float): + timestamp = EventTime(timestamp) packet = (tag, timestamp, data) if self.verbose: print(packet)