Class: OpenTelemetry::Instrumentation::AwsSdk::Handler
- Inherits:
-
Seahorse::Client::Handler
- Object
- Seahorse::Client::Handler
- OpenTelemetry::Instrumentation::AwsSdk::Handler
- Defined in:
- lib/opentelemetry/instrumentation/aws_sdk/handler.rb
Overview
This handler supports specifically supports V2 and V3 prior to Observability support released on 2024-09-03.
Instance Method Summary collapse
Instance Method Details
#call(context) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/opentelemetry/instrumentation/aws_sdk/handler.rb', line 13 def call(context) return super unless context service_id = HandlerHelper.service_id(context, legacy: true) client_method = HandlerHelper.client_method(service_id, context) tracer.in_span( HandlerHelper.span_name(context, client_method, service_id, legacy: true), attributes: HandlerHelper.span_attributes(context, client_method, service_id, legacy: true), kind: HandlerHelper.span_kind(client_method, service_id) ) do |span| MessagingHelper.inject_context_if_supported(context, client_method, service_id) if HandlerHelper.skip_internal_instrumentation? OpenTelemetry::Common::Utilities.untraced { super } else super end.tap do |response| span.set_attribute( OpenTelemetry::SemanticConventions::Trace::HTTP_STATUS_CODE, context.http_response.status_code ) if (err = response.error) span.record_exception(err) span.status = Trace::Status.error(err.to_s) end end end end |