Skip to content

Commit 327f6c5

Browse files
committed
polishing and pushed telemetry post as final event.
1 parent 653b722 commit 327f6c5

File tree

4 files changed

+21
-17
lines changed

4 files changed

+21
-17
lines changed

splitio/api/client.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,7 @@ def get(self, server, path, apikey, query=None, extra_headers=None): # pylint:
108108
headers=headers,
109109
timeout=self._timeout
110110
)
111-
response = HttpResponse(response.status_code, response.text)
112-
return response
111+
return HttpResponse(response.status_code, response.text)
113112
except Exception as exc: # pylint: disable=broad-except
114113
raise HttpClientException('requests library is throwing exceptions') from exc
115114

@@ -146,7 +145,6 @@ def post(self, server, path, apikey, body, query=None, extra_headers=None): # p
146145
headers=headers,
147146
timeout=self._timeout
148147
)
149-
response = HttpResponse(response.status_code, response.text)
150-
return response
148+
return HttpResponse(response.status_code, response.text)
151149
except Exception as exc: # pylint: disable=broad-except
152150
raise HttpClientException('requests library is throwing exceptions') from exc

splitio/api/commons.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ def record_telemetry(status_code, elapsed, metric_name, telemetry_runtime_produc
5151
telemetry_runtime_producer.record_sync_latency(metric_name, elapsed)
5252
if 200 <= status_code < 300:
5353
telemetry_runtime_producer.record_successful_sync(metric_name, get_current_epoch_time())
54-
else:
55-
telemetry_runtime_producer.record_sync_error(metric_name, status_code)
54+
return
55+
telemetry_runtime_producer.record_sync_error(metric_name, status_code)
5656

5757
class FetchOptions(object):
5858
"""Fetch Options object."""

splitio/client/client.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -408,12 +408,15 @@ def track(self, key, traffic_type, event_type, value=None, properties=None):
408408
properties=properties,
409409
)
410410

411-
return_flag = self._recorder.record_track_stats([EventWrapper(
412-
event=event,
413-
size=size,
414-
)])
415-
self._telemetry_evaluation_producer.record_latency(TRACK, get_current_epoch_time() - start)
416-
if not return_flag:
411+
try:
412+
return_flag = self._recorder.record_track_stats([EventWrapper(
413+
event=event,
414+
size=size,
415+
)])
416+
self._telemetry_evaluation_producer.record_latency(TRACK, get_current_epoch_time() - start)
417+
except Exception: # pylint: disable=broad-except
417418
self._telemetry_evaluation_producer.record_exception(TRACK)
419+
_LOGGER.error('Error processing track event')
420+
_LOGGER.debug('Error: ', exc_info=True)
418421

419422
return return_flag

splitio/sync/synchronizer.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -361,11 +361,14 @@ def stop_periodic_data_recording(self, blocking):
361361
if blocking:
362362
events = []
363363
for task in self._periodic_data_recording_tasks:
364-
stop_event = threading.Event()
365-
task.stop(stop_event)
366-
events.append(stop_event)
367-
time.sleep(0.4)
368-
if all(event.wait() for event in events):
364+
if task != self._split_tasks.telemetry_task:
365+
stop_event = threading.Event()
366+
task.stop(stop_event)
367+
events.append(stop_event)
368+
all(event.wait() for event in events)
369+
telemetry_event = threading.Event()
370+
self._split_tasks.telemetry_task.stop(telemetry_event)
371+
if telemetry_event.wait():
369372
_LOGGER.debug('all tasks finished successfully.')
370373
else:
371374
for task in self._periodic_data_recording_tasks:

0 commit comments

Comments
 (0)