Module: TingYun::Instrumentation::Support::ExternalHelper

Defined in:
lib/ting_yun/instrumentation/support/external_helper.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.metrics_for_message(product, ip_host, operation) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/ting_yun/instrumentation/support/external_helper.rb', line 27

def self.metrics_for_message(product, ip_host, operation)
  if TingYun::Agent::Transaction.recording_web_transaction?
    metrics =["AllWeb", "All"]
  else
    metrics =["AllBackground", "All"]
  end

  metrics = metrics.map { |suffix| "Message #{product}/NULL/#{suffix}" }
  metrics.unshift "Message #{product}/#{ip_host}/#{operation}"
end

Instance Method Details

#create_tingyun_id(protocol) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/ting_yun/instrumentation/support/external_helper.rb', line 8

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

#tingyun_externel_guidObject

generate a random 64 bit uuid



19
20
21
22
23
24
25
# File 'lib/ting_yun/instrumentation/support/external_helper.rb', line 19

def tingyun_externel_guid
  guid = ''
  16.times do
    guid << (0..15).map{|i| i.to_s(16)}[rand(16)]
  end
  guid
end