Skip to content

Commit cea74cb

Browse files
author
Matias Melograno
committed
merged with dev
2 parents c867c77 + 3d5925d commit cea74cb

28 files changed

+66
-1319
lines changed

CHANGES.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
9.2.0 (Dec XX, 2021)
2+
-
3+
14
9.1.0 (Jul 15, 2021)
25
- Added Cache-Control header for on-demand requests to sdk-server.
36
- Updated the synchronization flow to be more reliable in the event of an edge case generating delay in cache purge propagation, keeping the SDK cache properly synced.

splitio/api/telemetry.py

Lines changed: 0 additions & 142 deletions
This file was deleted.

splitio/client/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ def _build_impression( # pylint: disable=too-many-arguments
329329

330330
def _record_stats(self, impressions, start, operation):
331331
"""
332-
Record impressions and metrics.
332+
Record impressions.
333333
334334
:param impressions: Generated impressions
335335
:type impressions: list[tuple[splitio.models.impression.Impression, dict]]

splitio/client/factory.py

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,24 @@
1515

1616
# Storage
1717
from splitio.storage.inmemmory import InMemorySplitStorage, InMemorySegmentStorage, \
18-
InMemoryImpressionStorage, InMemoryEventStorage, InMemoryTelemetryStorage
18+
InMemoryImpressionStorage, InMemoryEventStorage
1919
from splitio.storage.adapters import redis
2020
from splitio.storage.redis import RedisSplitStorage, RedisSegmentStorage, RedisImpressionsStorage, \
21-
RedisEventsStorage, RedisTelemetryStorage
21+
RedisEventsStorage
2222

2323
# APIs
2424
from splitio.api.client import HttpClient
2525
from splitio.api.splits import SplitsAPI
2626
from splitio.api.segments import SegmentsAPI
2727
from splitio.api.impressions import ImpressionsAPI
2828
from splitio.api.events import EventsAPI
29-
from splitio.api.telemetry import TelemetryAPI
3029
from splitio.api.auth import AuthAPI
3130

3231
# Tasks
3332
from splitio.tasks.split_sync import SplitSynchronizationTask
3433
from splitio.tasks.segment_sync import SegmentSynchronizationTask
3534
from splitio.tasks.impressions_sync import ImpressionsSyncTask, ImpressionsCountSyncTask
3635
from splitio.tasks.events_sync import EventsSyncTask
37-
from splitio.tasks.telemetry_sync import TelemetrySynchronizationTask
3836

3937
# Synchronizer
4038
from splitio.sync.synchronizer import SplitTasks, SplitSynchronizers, Synchronizer, \
@@ -44,14 +42,12 @@
4442
from splitio.sync.segment import SegmentSynchronizer
4543
from splitio.sync.impression import ImpressionSynchronizer, ImpressionsCountSynchronizer
4644
from splitio.sync.event import EventSynchronizer
47-
from splitio.sync.telemetry import TelemetrySynchronizer
4845

4946
# Recorder
5047
from splitio.recorder.recorder import StandardRecorder, PipelinedRecorder
5148

5249
# Localhost stuff
53-
from splitio.client.localhost import LocalhostEventsStorage, LocalhostImpressionsStorage, \
54-
LocalhostTelemetryStorage
50+
from splitio.client.localhost import LocalhostEventsStorage, LocalhostImpressionsStorage
5551

5652

5753
_LOGGER = logging.getLogger(__name__)
@@ -260,7 +256,6 @@ def resume(self):
260256
sdk_ready_flag = threading.Event()
261257
self._sdk_internal_ready_flag = sdk_ready_flag
262258
self._sync_manager._ready_flag = sdk_ready_flag
263-
self._get_storage('telemetry').clear()
264259
self._get_storage('impressions').clear()
265260
self._get_storage('events').clear()
266261
initialization_thread = threading.Thread(
@@ -307,7 +302,6 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
307302
'segments': SegmentsAPI(http_client, api_key, sdk_metadata),
308303
'impressions': ImpressionsAPI(http_client, api_key, sdk_metadata, cfg['impressionsMode']),
309304
'events': EventsAPI(http_client, api_key, sdk_metadata),
310-
'telemetry': TelemetryAPI(http_client, api_key, sdk_metadata)
311305
}
312306

313307
if not input_validator.validate_apikey_type(apis['segments']):
@@ -318,7 +312,6 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
318312
'segments': InMemorySegmentStorage(),
319313
'impressions': InMemoryImpressionStorage(cfg['impressionsQueueSize']),
320314
'events': InMemoryEventStorage(cfg['eventsQueueSize']),
321-
'telemetry': InMemoryTelemetryStorage()
322315
}
323316

324317
imp_manager = ImpressionsManager(
@@ -332,7 +325,6 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
332325
ImpressionSynchronizer(apis['impressions'], storages['impressions'],
333326
cfg['impressionsBulkSize']),
334327
EventSynchronizer(apis['events'], storages['events'], cfg['eventsBulkSize']),
335-
TelemetrySynchronizer(apis['telemetry'], storages['telemetry']),
336328
ImpressionsCountSynchronizer(apis['impressions'], imp_manager),
337329
)
338330

@@ -350,10 +342,6 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
350342
cfg['impressionsRefreshRate'],
351343
),
352344
EventsSyncTask(synchronizers.events_sync.synchronize_events, cfg['eventsPushRate']),
353-
TelemetrySynchronizationTask(
354-
synchronizers.telemetry_sync.synchronize_telemetry,
355-
cfg['metricsRefreshRate'],
356-
),
357345
ImpressionsCountSyncTask(synchronizers.impressions_count_sync.synchronize_counters)
358346
)
359347

@@ -370,7 +358,6 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
370358

371359
recorder = StandardRecorder(
372360
imp_manager,
373-
storages['telemetry'],
374361
storages['events'],
375362
storages['impressions'],
376363
)
@@ -400,7 +387,6 @@ def _build_redis_factory(api_key, cfg):
400387
'segments': RedisSegmentStorage(redis_adapter),
401388
'impressions': RedisImpressionsStorage(redis_adapter, sdk_metadata),
402389
'events': RedisEventsStorage(redis_adapter, sdk_metadata),
403-
'telemetry': RedisTelemetryStorage(redis_adapter, sdk_metadata)
404390
}
405391
data_sampling = cfg.get('dataSampling', DEFAULT_DATA_SAMPLING)
406392
if data_sampling < _MIN_DEFAULT_DATA_SAMPLING_ALLOWED:
@@ -411,7 +397,6 @@ def _build_redis_factory(api_key, cfg):
411397
redis_adapter.pipeline,
412398
ImpressionsManager(cfg['impressionsMode'], False,
413399
_wrap_impression_listener(cfg['impressionListener'], sdk_metadata)),
414-
storages['telemetry'],
415400
storages['events'],
416401
storages['impressions'],
417402
data_sampling,
@@ -431,19 +416,18 @@ def _build_localhost_factory(cfg):
431416
'segments': InMemorySegmentStorage(), # not used, just to avoid possible future errors.
432417
'impressions': LocalhostImpressionsStorage(),
433418
'events': LocalhostEventsStorage(),
434-
'telemetry': LocalhostTelemetryStorage()
435419
}
436420

437421
synchronizers = SplitSynchronizers(
438422
LocalSplitSynchronizer(cfg['splitFile'], storages['splits']),
439-
None, None, None, None, None,
423+
None, None, None, None,
440424
)
441425

442426
tasks = SplitTasks(
443427
SplitSynchronizationTask(
444428
synchronizers.split_sync.synchronize_splits,
445429
cfg['featuresRefreshRate'],
446-
), None, None, None, None, None,
430+
), None, None, None, None,
447431
)
448432

449433
sdk_metadata = util.get_metadata(cfg)
@@ -453,7 +437,6 @@ def _build_localhost_factory(cfg):
453437
manager.start()
454438
recorder = StandardRecorder(
455439
ImpressionsManager(cfg['impressionsMode'], True, None),
456-
storages['telemetry'],
457440
storages['events'],
458441
storages['impressions'],
459442
)

splitio/client/localhost.py

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import logging
33
import re
44

5-
from splitio.storage import ImpressionStorage, EventStorage, TelemetryStorage
5+
from splitio.storage import ImpressionStorage, EventStorage
66

77
_LEGACY_COMMENT_LINE_RE = re.compile(r'^#.*$')
88
_LEGACY_DEFINITION_LINE_RE = re.compile(r'^(?<![^#])(?P<feature>[\w_-]+)\s+(?P<treatment>[\w_-]+)$')
@@ -41,35 +41,3 @@ def pop_many(self, *_, **__): # pylint: disable=arguments-differ
4141
def clear(self, *_, **__): # pylint: disable=arguments-differ
4242
"""Accept any arguments and do nothing."""
4343
pass
44-
45-
46-
class LocalhostTelemetryStorage(TelemetryStorage):
47-
"""Impression storage that doesn't cache anything."""
48-
49-
def inc_latency(self, *_, **__): # pylint: disable=arguments-differ
50-
"""Accept any arguments and do nothing."""
51-
pass
52-
53-
def inc_counter(self, *_, **__): # pylint: disable=arguments-differ
54-
"""Accept any arguments and do nothing."""
55-
pass
56-
57-
def put_gauge(self, *_, **__): # pylint: disable=arguments-differ
58-
"""Accept any arguments and do nothing."""
59-
pass
60-
61-
def pop_latencies(self, *_, **__): # pylint: disable=arguments-differ
62-
"""Accept any arguments and do nothing."""
63-
pass
64-
65-
def pop_counters(self, *_, **__): # pylint: disable=arguments-differ
66-
"""Accept any arguments and do nothing."""
67-
pass
68-
69-
def pop_gauges(self, *_, **__): # pylint: disable=arguments-differ
70-
"""Accept any arguments and do nothing."""
71-
pass
72-
73-
def clear(self, *_, **__): # pylint: disable=arguments-differ
74-
"""Accept any arguments and do nothing."""
75-
pass

0 commit comments

Comments
 (0)