code: def should_trace(self, sampling_req=None):
          
          if sampling_req is None:
              return self._should_trace(self._default_rule)
  
          host = sampling_req.get('host', None)
          method = sampling_req.get('method', None)
          path = sampling_req.get('path', None)
  
          for rule in self._rules:
              if rule.applies(host, method, path):
                  return self._should_trace(rule)
  
          return self._should_trace(self._default_rule)
docs: Return True if the sampler decide to sample based on input
          information and sampling rules. It will first check if any
          custom rule should be applied, if not it falls back to the
          default sampling rule.
  
          All optional arugments are extracted from incoming requests by
          X-Ray middleware to perform path based sampling.