From 7d28f6e9dcff12fe5abc9873b4a8a87c5a8814c7 Mon Sep 17 00:00:00 2001 From: Min Xia Date: Thu, 18 Apr 2024 14:34:57 -0700 Subject: [PATCH] TraceId supports string starts with '0' --- packages/core/lib/segments/attributes/trace_id.js | 2 ++ .../core/test/unit/segments/attributes/trace_id.test.js | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/packages/core/lib/segments/attributes/trace_id.js b/packages/core/lib/segments/attributes/trace_id.js index 4b63d0ca..793279dd 100644 --- a/packages/core/lib/segments/attributes/trace_id.js +++ b/packages/core/lib/segments/attributes/trace_id.js @@ -56,6 +56,8 @@ class TraceID { 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; diff --git a/packages/core/test/unit/segments/attributes/trace_id.test.js b/packages/core/test/unit/segments/attributes/trace_id.test.js index c474f754..fc5c7007 100644 --- a/packages/core/test/unit/segments/attributes/trace_id.test.js +++ b/packages/core/test/unit/segments/attributes/trace_id.test.js @@ -44,4 +44,12 @@ describe('TraceID', function() { var traceId = TraceID.FromString(traceStr); assert.equal(traceId.toString(), traceStr); }); + + it('should keep leading 0\'s for trace ID from given string', function() { + const traceStr = '1-00fbe041-2c7ad569f5d6ff149137be86'; + var traceId = TraceID.FromString(traceStr); + assert.equal(traceId.version, 1); + assert.equal(traceId.timestamp, '00fbe041'); + assert.equal(traceId.id, '2c7ad569f5d6ff149137be86'); + }); });