From 23a16d202ada80cd9c7c7c971e5132228d65cfb6 Mon Sep 17 00:00:00 2001 From: Yongseok Date: Tue, 5 Mar 2024 17:40:43 +0900 Subject: [PATCH] [#167] Release v0.9.0-next.4 * TransactionId sequence should only increment the sequence when sampled * Update CHANGELOG.md --- CHANGELOG.md | 3 +- test/instrumentation/module/express.test.js | 34 +++++++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4a94a15..fdb0d5e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog All notable changes to Pinpoint Node.js agent will be documented in this file. -## [0.9.0-next.4] - 2024-01-30 +## [0.9.0-next.4] - 2024-03-05 ### Added - #86 Express with method name - #155 SQL UID @@ -10,6 +10,7 @@ All notable changes to Pinpoint Node.js agent will be documented in this file. - #87 HTTP param ### Fixed - #101 Nested Async call +- #171 Fix DisableTrace outgoing request HTTP header ## [0.8.3] - 2021-11-19 ### Fixed diff --git a/test/instrumentation/module/express.test.js b/test/instrumentation/module/express.test.js index 91528b47..a413a949 100644 --- a/test/instrumentation/module/express.test.js +++ b/test/instrumentation/module/express.test.js @@ -672,10 +672,15 @@ test('incoming request by Disable Trace requests', (t) => { agent.callbackTraceClose((trace) => { if (actualRequestCount == 1) { t.equal(actualTraceIdSequence, parseInt(trace.traceId.transactionId.sequence), 'transaction id sequence equals transactionIdGenerator.sequence') - actualTraceIdSequence = transactionIdGenerator.sequence + t.equal(actualTraceIdSequence, 0, 'first request transactionIdGenerator.sequence is 0') + } else if (actualRequestCount == 4) { + t.equal(actualTraceIdSequence, parseInt(trace.traceId.transactionId.sequence), 'transaction id sequence equals transactionIdGenerator.sequence') + t.equal(actualTraceIdSequence, 1, 'fourth request transactionIdGenerator.sequence is 1') } else { t.true(trace instanceof DisableTrace, `trace is DisableTrace actualRequestCount=${actualRequestCount}`) + t.equal(actualTraceIdSequence, transactionIdGenerator.sequence, 'DisableTrace transaction no updated transactionIdGenerator.sequence') } + actualTraceIdSequence = transactionIdGenerator.sequence rootPathTraces.push(trace) }) }) @@ -684,18 +689,40 @@ test('incoming request by Disable Trace requests', (t) => { const apiPathTraces = [] app.get('/api', async (req, res) => { apiRequests.push(req) + + const result = await axios.get(getServerUrl('/api2')) + t.equal(result.status, 200, 'api2 request status code is 200') + t.equal(result.data, 'ok /api2 get', 'api request data is ok /api2 get') res.send('ok /api get') agent.callbackTraceClose((trace) => { - if (actualRequestCount == 1) { + if (actualRequestCount == 1 || actualRequestCount == 4) { t.equal(actualTraceIdSequence, parseInt(trace.traceId.transactionId.sequence), 'API transaction id sequence equals transactionIdGenerator.sequence') } else { t.true(trace instanceof DisableTrace, `trace is DisableTrace actualRequestCount=${actualRequestCount}`) + t.equal(actualTraceIdSequence, transactionIdGenerator.sequence, 'API DisableTrace transaction no updated transactionIdGenerator.sequence') } apiPathTraces.push(trace) }) }) + const apiRequests2 = [] + const apiPathTraces2 = [] + app.get('/api2', async (req, res) => { + apiRequests2.push(req) + res.send('ok /api2 get') + + agent.callbackTraceClose((trace) => { + if (actualRequestCount == 1 || actualRequestCount == 4) { + t.equal(actualTraceIdSequence, parseInt(trace.traceId.transactionId.sequence), 'API transaction id sequence equals transactionIdGenerator.sequence') + } else { + t.true(trace instanceof DisableTrace, `trace is DisableTrace actualRequestCount=${actualRequestCount}`) + t.equal(actualTraceIdSequence, transactionIdGenerator.sequence, 'API DisableTrace transaction no updated transactionIdGenerator.sequence') + } + apiPathTraces2.push(trace) + }) + }) + const server = app.listen(TEST_ENV.port, async function () { const result1 = await axios.get(getServerUrl('/')) t.equal(result1.status, 200, 'first / request status code is 200') @@ -743,6 +770,9 @@ test('incoming request by Disable Trace requests', (t) => { t.equal(actualApiRequest.url, '/api', 'Third request is DisableTrace api request url is /api') t.equal(actualApiRequest.headers['pinpoint-sampled'], 's0', 'Third request is DisableTrace api request pinpoint-sampled header is s0') + const result4 = await axios.get(getServerUrl('/')) + t.equal(result4.status, 200, 'third / request status code is 200') + t.end() server.close() })