class SplitIoClient::Telemetry::MemorySynchronizer

def synchronize_stats

def synchronize_stats
  usage = Usage.new(@telemetry_runtime_consumer.last_synchronizations,
                    @telemtry_evaluation_consumer.pop_latencies,
                    @telemtry_evaluation_consumer.pop_exceptions,
                    @telemetry_runtime_consumer.pop_http_errors,
                    @telemetry_runtime_consumer.pop_http_latencies,
                    @telemetry_runtime_consumer.pop_token_refreshes,
                    @telemetry_runtime_consumer.pop_auth_rejections,
                    @telemetry_runtime_consumer.impressions_stats(Domain::Constants::IMPRESSIONS_QUEUED),
                    @telemetry_runtime_consumer.impressions_stats(Domain::Constants::IMPRESSIONS_DEDUPE),
                    @telemetry_runtime_consumer.impressions_stats(Domain::Constants::IMPRESSIONS_DROPPED),
                    @splits_repository.splits_count,
                    @segments_repository.segments_count,
                    @segments_repository.segment_keys_count,
                    @telemetry_runtime_consumer.session_length,
                    @telemetry_runtime_consumer.events_stats(Domain::Constants::EVENTS_QUEUED),
                    @telemetry_runtime_consumer.events_stats(Domain::Constants::EVENTS_DROPPED),
                    @telemetry_runtime_consumer.pop_streaming_events,
                    @telemetry_runtime_consumer.pop_tags,
                    @telemetry_runtime_consumer.pop_updates_from_sse)
  @telemetry_api.record_stats(format_stats(usage))
rescue StandardError => e
  @config.log_found_exception(__method__.to_s, e)
end