resolveSampling: function resolveSampling()

in packages/core/lib/middleware/mw_utils.js [87:116]


  resolveSampling: function resolveSampling(amznTraceHeader, segment, res) {
    var isSampled;

    if (amznTraceHeader.sampled === '1') {
      isSampled = true;
    } else if (amznTraceHeader.sampled === '0') {
      isSampled = false;
    } else {
      var sampleRequest = {
        host: res.req.headers.host,
        httpMethod: res.req.method,
        urlPath: res.req.url,
        serviceName: segment.name
      };

      isSampled = this.sampler.shouldSample(sampleRequest);
      if (isSampled instanceof String || typeof isSampled === 'string') {
        segment.setMatchedSamplingRule(isSampled);
        isSampled = true;
      }
    }

    if (amznTraceHeader.sampled === '?' && res.header) {
      res.header(XRAY_HEADER, 'Root=' + amznTraceHeader.root + ';Sampled=' + (isSampled ? '1' : '0'));
    }

    if (!isSampled) {
      segment.notTraced = true;
    }
  },