Sha256: 29caea75edce5bb28ca004a41b5f6ad96cde9fd33202874fe73e46989f3b363d

Contents?: true

Size: 1.32 KB

Versions: 3

Compression:

Stored size: 1.32 KB

Contents

# encoding: utf-8
require 'one_apm/support/rename_rules_engine/external_rename_rule'
module OneApm
  module Support
    class RenameRulesEngine

      class << self

        def create_or_update_external_rules(connect_response)
          unpacked_rules = unpack_rules(connect_response)
          if unpacked_rules.nil?
            nil
          elsif current_external_rename_rules.nil?
            OneApm::Manager.agent.external_rename_rules = ExternalRenameRule.new(unpacked_rules)
          elsif need_update?(unpacked_rules)
            OneApm::Manager.agent.external_rename_rules = ExternalRenameRule.new(unpacked_rules)
            OneApm::Manager.logger.debug "Updated RenameRules from version : #{unpacked_rules['hash_value']}"
          end
        end

        # There are two kinds of response
        # First one from connect data, another one from event_loop
        def unpack_rules(connect_response)
          return nil if connect_response.nil?
          connect_response['btm_value'].nil? ? connect_response : connect_response['btm_value']
        end

        def need_update?(unpacked_rules)
          current_external_rename_rules.hash_value.to_i < unpacked_rules['hash_value'].to_i
        end

        def current_external_rename_rules
          OneApm::Manager.agent.external_rename_rules
        end

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
oneapm_rpm-1.4.2 lib/one_apm/support/rename_rules_engine.rb
oneapm_rpm-1.4.1 lib/one_apm/support/rename_rules_engine.rb
oneapm_rpm-1.4.0 lib/one_apm/support/rename_rules_engine.rb