code: func (s *serverHandler) TagRPC(ctx context.Context, rti *stats.RPCTagInfo) context.Context {
  	md, ok := metadata.FromIncomingContext(ctx)
  	// In practice, ok never seems to be false but add a defensive check.
  	if !ok {
  		md = metadata.New(nil)
  	}
  
  	name := spanName(rti)
  
  	sc := s.tracer.Extract(b3.ExtractGRPC(&md))
  
  	span := s.tracer.StartSpan(name, zipkin.Kind(model.Server), zipkin.Parent(sc), zipkin.RemoteEndpoint(remoteEndpointFromContext(ctx, "")))
  
  	for k, v := range s.defaultTags {
  		span.Tag(k, v)
  	}
  
  	return zipkin.NewContext(ctx, span)
  }
docs: // TagRPC implements per-RPC context management.