def send_message()

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)