processTraceData: function processTraceData()

in packages/core/lib/utils.js [203:234]


  processTraceData: function processTraceData(traceData) {
    var amznTraceData = {};
    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]) {
        var key = pair[0].trim().toLowerCase();
        var value = pair[1].trim().toLowerCase();
        var reserved = reservedKeywords.indexOf(key) !== -1;

        if (reserved) {
          amznTraceData[key] = value;
        } else if (!reserved && remainingBytes - (key.length + value.length) >= 0) {
          amznTraceData[key] = value;
          remainingBytes -= (key.length + value.length);
        }
      }
    });

    return amznTraceData;
  },