class ElasticAPM::OpenTracing::Span

def finish(end_time: Time.now)

def finish(end_time: Time.now)
  return unless (instrumenter = ElasticAPM.agent&.instrumenter)
  elastic_span.done end_time: Util.micros(end_time)
  case elastic_span
  when ElasticAPM::Transaction
    instrumenter.current_transaction = nil
  when ElasticAPM::Span
    instrumenter.current_spans.delete(elastic_span)
  end
  instrumenter.enqueue.call elastic_span
end