Sha256: d4daf9728fbbf8b04acb00fcf029820d4b25f4fe1983bdd912e1c6e6f58b69d2

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

# encoding: utf-8


module TingYun
  module Instrumentation
    module Support
      module ExternalHelper
        def create_tingyun_id(protocol)
          state = TingYun::Agent::TransactionState.tl_get
          externel_guid = tingyun_externel_guid
          state.extenel_req_id = externel_guid
          cross_app_id  = TingYun::Agent.config[:tingyunIdSecret] or
              raise TingYun::Agent::CrossAppTracing::Error, "no tingyunIdSecret configured"
          state.add_current_node_params(:txId=>state.request_guid, :externalId=>state.extenel_req_id)
          "#{cross_app_id};c=1;x=#{state.request_guid};e=#{externel_guid};s=#{TingYun::Helper.time_to_millis(Time.now)};p=#{protocol}"
        end

        # generate a random 64 bit uuid
        def tingyun_externel_guid
          guid = ''
          16.times do
            guid << (0..15).map{|i| i.to_s(16)}[rand(16)]
          end
          guid
        end

        def self.metrics_for_message(product, ip_host, operation)
          metrics =["AllWeb", "All"]
          metrics = metrics.map { |suffix| "Message #{product}/NULL/#{suffix}" }
          metrics.unshift "Message #{product}/#{ip_host}/#{operation}"
        end
      end
    end
  end
end


Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tingyun_rpm-1.4.2 lib/ting_yun/instrumentation/support/external_helper.rb