static FromString()

in packages/core/lib/segments/attributes/trace_id.js [33:68]


  static FromString(rawID) {
    const DELIMITER = '-';
    var traceID = new TraceID();
    var version, timestamp;

    if (!rawID || typeof rawID !== 'string') {
      logger.getLogger().error('Empty or non-string trace ID provided');
      return traceID;
    }

    const parts = rawID.trim().split(DELIMITER);
    if (parts.length !== 3) {
      logger.getLogger().error('Unrecognized trace ID format');
      return traceID;
    }

    version = parseInt(parts[0]);
    if (isNaN(version) || version < 1) {
      logger.getLogger().error('Trace ID version must be positive integer');
      return traceID;
    }

    timestamp = parseInt(parts[1], 16).toString(16);
    if (timestamp === 'NaN') {
      logger.getLogger().error('Trace ID timestamp must be a hex-encoded value');
      return traceID;
    } else {
      timestamp = timestamp.padStart(8, '0');
    }

    traceID.version = version;
    traceID.timestamp = timestamp;
    traceID.id = parts[2];

    return traceID;
  }