Method: NewRelic::Agent::JavaScriptInstrumentor#data_for_js_agent

Defined in:
lib/new_relic/agent/javascript_instrumentor.rb

#data_for_js_agent(transaction) ⇒ Object

NOTE: Internal prototyping may override this, so leave name stable!



138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/new_relic/agent/javascript_instrumentor.rb', line 138

def data_for_js_agent(transaction)
  queue_time_in_seconds = [transaction.queue_time, 0.0].max
  start_time_in_seconds = [transaction.start_time, 0.0].max
  app_time_in_seconds = Process.clock_gettime(Process::CLOCK_REALTIME) - start_time_in_seconds

  queue_time_in_millis = (queue_time_in_seconds * 1000.0).round
  app_time_in_millis = (app_time_in_seconds * 1000.0).round

  transaction_name = transaction.best_name || ::NewRelic::Agent::UNKNOWN_METRIC

  data = {
    BEACON_KEY => NewRelic::Agent.config[:beacon],
    ERROR_BEACON_KEY => NewRelic::Agent.config[:error_beacon],
    LICENSE_KEY_KEY => NewRelic::Agent.config[:browser_key],
    APPLICATIONID_KEY => NewRelic::Agent.config[:application_id],
    TRANSACTION_NAME_KEY => obfuscator.obfuscate(transaction_name),
    QUEUE_TIME_KEY => queue_time_in_millis,
    APPLICATION_TIME_KEY => app_time_in_millis,
    AGENT_KEY => NewRelic::Agent.config[:js_agent_file]
  }

  add_ssl_for_http(data)
  add_attributes(data, transaction)

  data
end