From 729cb2a9dc7c699742dd2c8f9baacbb5f63b18cb Mon Sep 17 00:00:00 2001 From: Matthias Behr Date: Tue, 7 Jan 2025 20:22:15 +0100 Subject: [PATCH 1/3] fix(sequences): conversion failures with par steps Sequences with par steps that ended due to a failure failed to report a markdown report. --- package.json | 2 +- src/webview/package.json | 2 +- src/webview/yarn.lock | 8 ++++---- yarn.lock | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index e7abcb8..ac8bd89 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ }, "dependencies": { "@vscode/extension-telemetry": "^0.9.8", - "dlt-logs-utils": "0.10.0", + "dlt-logs-utils": "0.10.1", "jju": "github:mbehr1/jju#3aa4169df926e99083fdd511d7c20b5bd9ba789f", "js-yaml": "^4.1.0", "json5": "2.2.3", diff --git a/src/webview/package.json b/src/webview/package.json index 335aee8..034928b 100644 --- a/src/webview/package.json +++ b/src/webview/package.json @@ -13,7 +13,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", - "dlt-logs-utils": "0.10.0", + "dlt-logs-utils": "0.10.1", "dompurify": "^2.4.0", "jju": "github:mbehr1/jju#3aa4169df926e99083fdd511d7c20b5bd9ba789f", "js-yaml": "^4.1.0", diff --git a/src/webview/yarn.lock b/src/webview/yarn.lock index 2c03301..def37df 100644 --- a/src/webview/yarn.lock +++ b/src/webview/yarn.lock @@ -4259,10 +4259,10 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dlt-logs-utils@0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/dlt-logs-utils/-/dlt-logs-utils-0.10.0.tgz#e8651aaf053497efc45d0e6fb93f08026c4bd819" - integrity sha512-YWDWyzlwKM2Lsp4F/+o+feFwNaKxj4SngT6XpJqcW5CIIyQgnFza1HxiFh3Kp8V0d5O1gBJJw7fUYFzyTRremQ== +dlt-logs-utils@0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/dlt-logs-utils/-/dlt-logs-utils-0.10.1.tgz#a869a6f9940dabb5cfbee029a75395c83595f878" + integrity sha512-WMppeBhtAlkhJoULy9Sn1i01CmuKfefV9faHqc0sC54vl28nx+glfI3pEnP4g5m2pHPGMdakBVtfSS8aJxMzSQ== dlv@^1.1.3: version "1.1.3" diff --git a/yarn.lock b/yarn.lock index cb09efa..8ff3b7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2283,10 +2283,10 @@ dir-glob@^3.0.0, dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dlt-logs-utils@0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/dlt-logs-utils/-/dlt-logs-utils-0.10.0.tgz#e8651aaf053497efc45d0e6fb93f08026c4bd819" - integrity sha512-YWDWyzlwKM2Lsp4F/+o+feFwNaKxj4SngT6XpJqcW5CIIyQgnFza1HxiFh3Kp8V0d5O1gBJJw7fUYFzyTRremQ== +dlt-logs-utils@0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/dlt-logs-utils/-/dlt-logs-utils-0.10.1.tgz#a869a6f9940dabb5cfbee029a75395c83595f878" + integrity sha512-WMppeBhtAlkhJoULy9Sn1i01CmuKfefV9faHqc0sC54vl28nx+glfI3pEnP4g5m2pHPGMdakBVtfSS8aJxMzSQ== doctrine@^3.0.0: version "3.0.0" From 95325eb755f758942b5de82c3f91438a456effd3 Mon Sep 17 00:00:00 2001 From: Matthias Behr Date: Tue, 7 Jan 2025 20:23:04 +0100 Subject: [PATCH 2/3] chore: improve output in case of md failures --- src/extension/fbaNBRQRenderer.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/extension/fbaNBRQRenderer.ts b/src/extension/fbaNBRQRenderer.ts index 69da943..9be4bb1 100644 --- a/src/extension/fbaNBRQRenderer.ts +++ b/src/extension/fbaNBRQRenderer.ts @@ -820,6 +820,33 @@ export class FBANBRestQueryRenderer { exec.appendOutput( new NotebookCellOutput([vscode.NotebookCellOutputItem.stderr(`converting result to md got err:${e}`)]), ) + // see which occurrence fails/throws: + let foundFailingOcc = false + for (const [occIdx, occ] of seqResult.occurrences.entries()) { + const partSeq: FbSequenceResult = { ...seqResult, occurrences: [occ] } + try { + const partResAsMd = seqResultToMdAst(partSeq) + } catch (e) { + appendMarkdown(exec, [ + { + open: true, + summary: `Failing sequence details: '${seqChecker.name}'. Occurrence #${occIdx} partial seqResult=:`, + texts: codeBlock(JSON.stringify(partSeq, undefined, 2), 'json'), + }, + ]) + foundFailingOcc = true + break + } + } + if (!foundFailingOcc) { + appendMarkdown(exec, [ + { + open: true, + summary: `Failing sequence details: '${seqChecker.name}'. seqResult=:`, + texts: codeBlock(JSON.stringify(seqResult, undefined, 2), 'json'), + }, + ]) + } } appendMarkdown(exec, [ { From ff339fd4a4727de0c60add34e2b53d72318577aa Mon Sep 17 00:00:00 2001 From: Matthias Behr Date: Tue, 7 Jan 2025 20:42:03 +0100 Subject: [PATCH 3/3] fix(sequences): increase msg limit to 1mio msgs Increase the msg limit used for sequence rest queries and show a warning if this limit was hit. This now reflects the same limit as in dlt-logs extension. --- src/extension/fbaNBRQRenderer.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/extension/fbaNBRQRenderer.ts b/src/extension/fbaNBRQRenderer.ts index 9be4bb1..ec86639 100644 --- a/src/extension/fbaNBRQRenderer.ts +++ b/src/extension/fbaNBRQRenderer.ts @@ -672,6 +672,7 @@ export class FBANBRestQueryRenderer { ): Promise { try { const perfStart: number = performance.now() + const maxNrMsgs = 1_000_000 const sequences = JSON5.parse(cell.document.getText()) if (Array.isArray(sequences) && sequences.length > 0) { // code similar to fba-cli.processSequences (todo refactor to dlt-log-utils/sequences?) @@ -706,6 +707,7 @@ export class FBANBRestQueryRenderer { } else { // we do want lifecycle infos as well allFilters[0].addLifecycles = true + allFilters[0].maxNrMsgs = maxNrMsgs + 1 // one more to detect whether we ran into the limit } const allFiltersRq: RQ = { path: 'ext:mbehr1.dlt-logs/get/docs/0/filters?', // todo get from cell data! @@ -751,6 +753,10 @@ export class FBANBRestQueryRenderer { receptionTimeInMs: lifecycle ? lifecycle.lifecycleStart.valueOf() + d.attributes.timeStamp / 10000 : 0, } }) + const hitMaxNrMsgsLimit = msgs.length > maxNrMsgs + if (hitMaxNrMsgsLimit) { + msgs.splice(maxNrMsgs) + } const slicedMsgs = msgs.slice(0, 50) perfNow = performance.now() perfInterims = perfNow - perfStep @@ -771,6 +777,15 @@ export class FBANBRestQueryRenderer { texts: msgsText, }, ]) + if (hitMaxNrMsgsLimit) { + exec.appendOutput( + new NotebookCellOutput([ + vscode.NotebookCellOutputItem.stderr( + `Query results were limited to ${maxNrMsgs} messages! Please adjust filters to reduce the amount of messages!`, + ), + ]), + ) + } perfNow = performance.now() perfInterims = perfNow - perfStep perfStep = perfNow