module OpenTelemetry::Instrumentation::ActiveModelSerializers::EventHandler

Event handler singleton for ActiveModelSerializers

Public Instance Methods

handle(start_timestamp, end_timestamp, payload) click to toggle source
# File lib/opentelemetry/instrumentation/active_model_serializers/event_handler.rb, line 14
def handle(start_timestamp, end_timestamp, payload)
  tracer.start_span(span_name(payload),
                    start_timestamp: start_timestamp,
                    attributes: build_attributes(payload),
                    kind: :internal)
        .finish(end_timestamp: end_timestamp)
end

Protected Instance Methods

build_attributes(payload) click to toggle source
# File lib/opentelemetry/instrumentation/active_model_serializers/event_handler.rb, line 28
def build_attributes(payload)
  {
    'serializer.name' => payload[:serializer].name,
    'serializer.renderer' => 'active_model_serializers',
    'serializer.format' => payload[:adapter]&.class&.name || 'default'
  }
end
demodulize(string) click to toggle source
# File lib/opentelemetry/instrumentation/active_model_serializers/event_handler.rb, line 40
def demodulize(string)
  string = string.to_s
  i = string.rindex('::')
  i ? string[(i + 2)..-1] : string
end
span_name(payload) click to toggle source
# File lib/opentelemetry/instrumentation/active_model_serializers/event_handler.rb, line 24
def span_name(payload)
  "#{demodulize(payload[:serializer].name)} render"
end
tracer() click to toggle source
# File lib/opentelemetry/instrumentation/active_model_serializers/event_handler.rb, line 36
def tracer
  ActiveModelSerializers::Instrumentation.instance.tracer
end