code: def wrap_session_request(wrapped, instance, args, kwargs):
      
      method = kwargs.get('method') or args[0]
      url = kwargs.get('url') or args[1]
  
      blacklist_hostnames = execution_context.get_opencensus_attr(
          'blacklist_hostnames')
      parsed_url = urlparse(url)
      if parsed_url.port is None:
          dest_url = parsed_url.hostname
      else:
          dest_url = '{}:{}'.format(parsed_url.hostname, parsed_url.port)
      if utils.disable_tracing_hostname(dest_url, blacklist_hostnames):
          return wrapped(*args, **kwargs)
  
      _tracer = execution_context.get_opencensus_tracer()
      _span = _tracer.start_span()
  
      _span.name = '[requests]{}'.format(method)
      _span.span_kind = span_module.SpanKind.CLIENT
  
      try:
          tracer_headers = _tracer.propagator.to_headers(
              _tracer.span_context)
          kwargs.setdefault('headers', {}).update(
              tracer_headers)
      except Exception:  # pragma: NO COVER
          pass
  
      # Add the requests url to attributes
      _tracer.add_attribute_to_current_span(HTTP_URL, url)
  
      result = wrapped(*args, **kwargs)
  
      # Add the status code to attributes
      _tracer.add_attribute_to_current_span(
          HTTP_STATUS_CODE, str(result.status_code))
  
      _tracer.end_span()
      return result
docs: Wrap the session function to trace it.