Clean up connection.py
Extract complex logic from report function. Remove unused variables. Change-Id: I6b1f2a189a5f519df34086b67d1d61c20e86d584
This commit is contained in:
parent
8c4c92a852
commit
a840291036
@ -63,11 +63,9 @@ class Connection(object):
|
||||
:param max_buffer_size: Maximum number of metric to buffer before
|
||||
sending to the server if sending metrics in batch
|
||||
"""
|
||||
self._host = None
|
||||
self._port = None
|
||||
self.socket = None
|
||||
self.max_buffer_size = max_buffer_size
|
||||
self._send = self._send_to_server
|
||||
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
self.connect(host, port)
|
||||
self.encoding = 'utf-8'
|
||||
|
||||
@ -97,27 +95,48 @@ class Connection(object):
|
||||
"""Connect to the monascastatsd server on the given host and port.
|
||||
|
||||
"""
|
||||
self._host = host
|
||||
self._port = int(port)
|
||||
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
self.socket.connect((self._host, self._port))
|
||||
self.socket.connect((host, int(port)))
|
||||
|
||||
def report(self, metric, metric_type, value, dimensions, sample_rate):
|
||||
"""Use this connection to report metrics.
|
||||
|
||||
"""
|
||||
if sample_rate != 1 and random.random() > sample_rate:
|
||||
return
|
||||
if sample_rate == 1 or random.random() <= sample_rate:
|
||||
self._send_payload(dimensions, metric,
|
||||
metric_type, sample_rate,
|
||||
value)
|
||||
|
||||
def _send_payload(self, dimensions, metric, metric_type,
|
||||
sample_rate, value):
|
||||
|
||||
encoded = self._create_payload(dimensions, metric,
|
||||
metric_type, sample_rate,
|
||||
value)
|
||||
|
||||
self._send(encoded)
|
||||
|
||||
def _create_payload(self, dimensions, metric, metric_type, sample_rate,
|
||||
value):
|
||||
|
||||
payload = [metric, ":", value, "|", metric_type]
|
||||
if sample_rate != 1:
|
||||
payload.extend(["|@", sample_rate])
|
||||
if dimensions:
|
||||
payload.extend(["|#"])
|
||||
payload.append(dimensions)
|
||||
payload.extend(self._payload_extension_from_sample_rate(sample_rate))
|
||||
payload.extend(self._payload_extension_from_dimensions(dimensions))
|
||||
|
||||
encoded = "".join(six.moves.map(str, payload))
|
||||
self._send(encoded)
|
||||
return "".join(six.moves.map(str, payload))
|
||||
|
||||
@staticmethod
|
||||
def _payload_extension_from_sample_rate(sample_rate):
|
||||
if sample_rate != 1:
|
||||
return ["|@", sample_rate]
|
||||
else:
|
||||
return []
|
||||
|
||||
@staticmethod
|
||||
def _payload_extension_from_dimensions(dimensions):
|
||||
if dimensions:
|
||||
return ["|#", dimensions]
|
||||
else:
|
||||
return []
|
||||
|
||||
def _send_to_server(self, packet):
|
||||
try:
|
||||
|
Loading…
Reference in New Issue
Block a user