Sha256: 199838e3d58e88e17243f97e6c997c9f63555444b323ec0d781ad31da17be9b1

Contents?: true

Size: 1022 Bytes

Versions: 62

Compression:

Stored size: 1022 Bytes

Contents

# frozen_string_literal: true

module SplitIoClient
  module Telemetry
    class RedisEvaluationProducer
      def initialize(config)
        @config = config
        @adapter = config.telemetry_adapter

        @sdk_version = "#{@config.language}-#{@config.version}"
        @name = @config.machine_name
        @ip = @config.machine_ip
      end

      def record_latency(method, bucket)
        @adapter.hincrby(latency_key, "#{@sdk_version}/#{@name}/#{@ip}/#{method}/#{bucket}", 1)
      rescue StandardError => e
        @config.log_found_exception(__method__.to_s, e)
      end

      def record_exception(method)
        @adapter.hincrby(exception_key, "#{@sdk_version}/#{@name}/#{@ip}/#{method}", 1)
      rescue StandardError => e
        @config.log_found_exception(__method__.to_s, e)
      end

      private

      def latency_key
        "#{@config.redis_namespace}.telemetry.latencies"
      end

      def exception_key
        "#{@config.redis_namespace}.telemetry.exceptions"
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
splitclient-rb-8.5.0-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.5.0 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.5.0.pre.rc1-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.5.0.pre.rc1 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.4.1.pre.rc1-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.4.1.pre.rc1 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.4.0-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.4.0 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.4.0.pre.rc1-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.4.0.pre.rc1 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.4.0.rc.1-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.4.0.rc.1 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.3.2.pre.rc2-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.3.2.pre.rc2 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.3.2.pre.rc1-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.3.2.pre.rc1 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.3.1-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.3.1 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.3.1.pre.rc1-java lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb
splitclient-rb-8.3.1.pre.rc1 lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb