diff options
author | 2022-11-05 13:39:52 +0000 | |
---|---|---|
committer | 2022-11-05 14:05:00 +0000 | |
commit | 962968fecedca3bef33ba9524d87ffedf815f16d (patch) | |
tree | 3dd7b6c6cae4f01c8a5aae3e2371bd3a5e9dd0e7 /botcore/async_stats.py | |
parent | Update pyproject.toml module meta data (diff) |
Rename package due to naming conflict
Diffstat (limited to 'botcore/async_stats.py')
-rw-r--r-- | botcore/async_stats.py | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/botcore/async_stats.py b/botcore/async_stats.py deleted file mode 100644 index fef5b2d6..00000000 --- a/botcore/async_stats.py +++ /dev/null @@ -1,57 +0,0 @@ -"""An async transport method for statsd communication.""" - -import asyncio -import socket -from typing import Optional - -from statsd.client.base import StatsClientBase - -from botcore.utils import scheduling - - -class AsyncStatsClient(StatsClientBase): - """An async implementation of :obj:`statsd.client.base.StatsClientBase` that supports async stat communication.""" - - def __init__( - self, - loop: asyncio.AbstractEventLoop, - host: str = 'localhost', - port: int = 8125, - prefix: str = None - ): - """ - Create a new :obj:`AsyncStatsClient`. - - Args: - loop (asyncio.AbstractEventLoop): The event loop to use when creating the - :obj:`asyncio.loop.create_datagram_endpoint`. - host: The host to connect to. - port: The port to connect to. - prefix: The prefix to use for all stats. - """ - _, _, _, _, addr = socket.getaddrinfo( - host, port, socket.AF_INET, socket.SOCK_DGRAM - )[0] - self._addr = addr - self._prefix = prefix - self._loop = loop - self._transport: Optional[asyncio.DatagramTransport] = None - - async def create_socket(self) -> None: - """Use :obj:`asyncio.loop.create_datagram_endpoint` from the loop given on init to create a socket.""" - self._transport, _ = await self._loop.create_datagram_endpoint( - asyncio.DatagramProtocol, - family=socket.AF_INET, - remote_addr=self._addr - ) - - def _send(self, data: str) -> None: - """Start an async task to send data to statsd.""" - scheduling.create_task(self._async_send(data), event_loop=self._loop) - - async def _async_send(self, data: str) -> None: - """Send data to the statsd server using the async transport.""" - self._transport.sendto(data.encode('ascii'), self._addr) - - -__all__ = ['AsyncStatsClient'] |