in aws_embedded_metrics/sinks/tcp_client.py [0:0]
def send_message(self, message: bytes, retry: int = 1) -> None:
if retry < 0:
log.error("Max retries exhausted, dropping message")
return
if self._sock is None or self._sock._closed or self._should_connect: # type: ignore
self.connect()
with self._write_lock:
try:
self._sock.sendall(message)
log.info("Submitted metrics to agent over TCP.")
except socket.timeout as e:
log.error("Socket timeout durring send %s" % (e,))
self.connect()
self.send_message(message, retry - 1)
except socket.error as e:
log.error("Failed to write metrics to the socket due to socket.error. %s" % (e,))
self.connect()
self.send_message(message, retry - 1)
except Exception as e:
log.error("Failed to write metrics to the socket due to exception. %s" % (e,))
self.connect()
self.send_message(message, retry - 1)