Sha256: c8ff30e33a030591833afd29c2233b8131b11667931c94430da82b14ff7c579c
Contents?: true
Size: 1.4 KB
Versions: 9
Compression:
Stored size: 1.4 KB
Contents
require 'sqreen/ecosystem/module_api' require 'sqreen/ecosystem/module_api/instrumentation' require 'sqreen/ecosystem/module_api/message_producer' require 'sqreen/ecosystem/module_api/tracing_id_generation' require 'sqreen/ecosystem/module_api/tracing/client_data' module Sqreen module Ecosystem module Http class NetHttp class HttpConnectionData include ModuleApi::Tracing::ClientData end include ModuleApi::Instrumentation include ModuleApi::MessageProducer include ModuleApi::TracingIdGeneration def setup advice = wrap_for_interest(HttpConnectionData, &method(:before_advice)) instrument 'Net::HTTP#request', before: advice end private # instr. def request(req, body = nil, &block) # :yield: +response+ # req is of type +Net::HTTPGenericRequest+ def before_advice(call, _ball) tracing_id = create_tracing_id # build & submit signal host = call.instance.address port = call.instance.port # add tracing header req = call.args[0] req[ModuleApi::TRACE_ID_HEADER] = tracing_id host += ':' + port.to_s if port != 80 && port != 443 HttpConnectionData.new( transport: 'http', host: host, tracing_identifier: tracing_id ) end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems