code: public static void serverSend(NettyHttpResponse response, Throwable throwable) {
          try {
              SofaRequest sofaRequest = new SofaRequest();
              SofaResponse sofaResponse = new SofaResponse();
  
              if (response == null) {
                  sofaResponse.setErrorMsg("rest path ends with /favicon.ico");
              } else if (throwable != null) {
                  if (response.getStatus() == 500) {
                      sofaResponse.setAppResponse(throwable);
                  } else {
                      sofaResponse.setErrorMsg(throwable.getMessage());
                  }
  
                  Object method = RpcInternalContext.getContext().getAttachment(METHOD_TYPE_STRING);
                  if (method != null) {
                      Class[] parameterTypes = ((Method) method).getParameterTypes();
                      String[] methodTypeString = new String[parameterTypes.length];
                      for (int i = 0; i < methodTypeString.length; i++) {
                          methodTypeString[i] = (parameterTypes[i].getName());
                      }
                      sofaRequest.setMethodArgSigs(methodTypeString);
                  }
              }
  
              SofaTraceContext sofaTraceContext = SofaTraceContextHolder.getSofaTraceContext();
              SofaTracerSpan serverSpan = sofaTraceContext.getCurrentSpan();
  
              RpcInternalContext context = RpcInternalContext.getContext();
  
              if (serverSpan != null) {
                  serverSpan.setTag(RpcSpanTags.SERVER_BIZ_TIME,
                      (Number) context.getAttachment(RpcConstants.INTERNAL_KEY_IMPL_ELAPSE));
              }
  
              Tracers.serverSend(sofaRequest, sofaResponse, null);
          } catch (Throwable t) {
              if (LOGGER.isWarnEnabled()) {
                  LOGGER.warn("the process of rest tracer server send occur error ", t);
              }
          }
      }
docs: 适配服务端serverSend