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;
}
},