Method: OneApm::Agent::CrossAppTracing.extract_appdata

Defined in:
lib/one_apm/agent/cross_app/cross_app_tracing.rb

.extract_appdata(response) ⇒ Object

Extract x-process application data from the specified response and return it as an array of the form:

[
  <cross app ID>,
  <transaction name>,
  <queue time in seconds>,
  <response time in seconds>,
  <request content length in bytes>,
  <transaction GUID>
]


286
287
288
289
290
291
292
293
294
295
296
# File 'lib/one_apm/agent/cross_app/cross_app_tracing.rb', line 286

def extract_appdata( response )
  appdata = response[OA_APPDATA_HEADER] or
    raise OneApm::Agent::CrossAppTracing::Error,
      "Can't derive metrics for response: no #{OA_APPDATA_HEADER} header!"

  decoded_appdata = obfuscator.deobfuscate( appdata )
  decoded_appdata.set_encoding( ::Encoding::UTF_8 ) if
    decoded_appdata.respond_to?( :set_encoding )

  return OneApm::JSONWrapper.load( decoded_appdata )
end