in packages/core/lib/utils.js [211:246]
processTraceData: function processTraceData(traceData) {
var amznTraceData = {};
var data = {};
var reservedKeywords = ['root', 'parent', 'sampled', 'self'];
var remainingBytes = 256;
if (!(typeof traceData === 'string' && traceData)) {
return amznTraceData;
}
traceData.split(';').forEach(function(header) {
if (!header) {
return;
}
var pair = header.split('=');
if (pair[0] && pair[1]) {
let key = pair[0].trim();
let value = pair[1].trim();
let lowerCaseKey = key.toLowerCase();
let reserved = reservedKeywords.indexOf(lowerCaseKey) !== -1;
if (reserved) {
amznTraceData[lowerCaseKey] = value;
} else if (!reserved && remainingBytes - (lowerCaseKey.length + value.length) >= 0) {
data[key] = value;
remainingBytes -= (key.length + value.length);
}
}
});
amznTraceData['data'] = data;
return amznTraceData;
},