class Datadog::Tracing::Contrib::GRPC::DatadogInterceptor::Server

def annotate!(span, metadata, formatter)

def annotate!(span, metadata, formatter)
  metadata.each do |header, value|
    # Datadog propagation headers are considered internal implementation detail.
    next if header.to_s.start_with?(Tracing::Distributed::Datadog::TAGS_PREFIX)
    span.set_tag(header, value)
  end
  # Tag original global service name if not used
  if span.service != Datadog.configuration.service
    span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
  end
  span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER)
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_SERVICE)
  span.set_tag(Contrib::Ext::RPC::TAG_SYSTEM, Ext::TAG_SYSTEM)
  span.set_tag(Contrib::Ext::RPC::TAG_SERVICE, formatter.legacy_grpc_service)
  span.set_tag(Contrib::Ext::RPC::TAG_METHOD, formatter.legacy_grpc_method)
  span.set_tag(Contrib::Ext::RPC::GRPC::TAG_FULL_METHOD, formatter.grpc_full_method)
  # Set analytics sample rate
  Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?
  # Measure service stats
  Contrib::Analytics.set_measured(span)
rescue StandardError => e
  Datadog.logger.debug("GRPC server trace failed: #{e}")
end