class Instana::Instrumentation::Lambda::Handler
Public Instance Methods
call(context)
click to toggle source
# File lib/instana/instrumentation/aws_sdk_lambda.rb, line 9 def call(context) return @handler.call(context) unless [:invoke_async, :invoke].include?(context.operation_name) if context.params[:client_context].nil? && ::Instana.tracer.tracing? && context.operation_name == :invoke span_context = ::Instana.tracer.context payload = { 'X-INSTANA-T' => span_context.trace_id, 'X-INSTANA-S' => span_context.span_id, 'X-INSTANA-L' => span_context.level.to_s } context.params[:client_context] = JSON.dump(payload) end tags = { function: context.params[:function_name], type: context.params[:invocation_type] }.reject { |_, v| v.nil? } ::Instana.tracer.trace(:"aws.lambda.invoke", {aws: {lambda: {invoke: tags}}}) { @handler.call(context) } end