From f19830b5432f4c296a243a87a25d5854a48243e1 Mon Sep 17 00:00:00 2001 From: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com> Date: Tue, 7 Nov 2023 11:27:03 +0100 Subject: [PATCH] Tempo: Support comments in TraceQL (#77646) --- package.json | 2 +- .../datasource/tempo/traceql/TraceQLEditor.test.tsx | 4 ++++ public/app/plugins/datasource/tempo/traceql/traceql.ts | 6 +++++- yarn.lock | 10 +++++----- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 646f1927e51..dc42f9dcadf 100644 --- a/package.json +++ b/package.json @@ -252,7 +252,7 @@ "@grafana/flamegraph": "workspace:*", "@grafana/google-sdk": "0.1.1", "@grafana/lezer-logql": "0.2.1", - "@grafana/lezer-traceql": "0.0.9", + "@grafana/lezer-traceql": "0.0.10", "@grafana/monaco-logql": "^0.0.7", "@grafana/runtime": "workspace:*", "@grafana/scenes": "^1.20.1", diff --git a/public/app/plugins/datasource/tempo/traceql/TraceQLEditor.test.tsx b/public/app/plugins/datasource/tempo/traceql/TraceQLEditor.test.tsx index 40091386c4a..86f382184d2 100644 --- a/public/app/plugins/datasource/tempo/traceql/TraceQLEditor.test.tsx +++ b/public/app/plugins/datasource/tempo/traceql/TraceQLEditor.test.tsx @@ -76,6 +76,10 @@ describe('Check for syntax errors in query', () => { ['{true} << {true}'], ['{true} !>> {true}'], ['{true} !<< {true}'], + [ + `{ true } /* && { false } && */ && { true } // && { false } + && { true }`, + ], ])('valid query - %s', (query: string) => { expect(getErrorNodes(query)).toStrictEqual([]); }); diff --git a/public/app/plugins/datasource/tempo/traceql/traceql.ts b/public/app/plugins/datasource/tempo/traceql/traceql.ts index b8a717106d3..c077ebcd32d 100644 --- a/public/app/plugins/datasource/tempo/traceql/traceql.ts +++ b/public/app/plugins/datasource/tempo/traceql/traceql.ts @@ -63,6 +63,10 @@ export const language: languages.IMonarchLanguage = { tokenizer: { root: [ + // comments + [/\/\/.*/, 'comment'], // line comment + [/\/\*.*\*\//, 'comment'], // block comment + // durations [/[0-9]+(.[0-9]+)?(us|µs|ns|ms|s|m|h)/, 'number'], @@ -138,7 +142,7 @@ export const languageDefinition = { export const traceqlGrammar: Grammar = { comment: { - pattern: /#.*/, + pattern: /\/\/.*/, }, 'span-set': { pattern: /\{[^}]*}/, diff --git a/yarn.lock b/yarn.lock index e111cff3ffb..b31c05338ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3242,12 +3242,12 @@ __metadata: languageName: node linkType: hard -"@grafana/lezer-traceql@npm:0.0.9": - version: 0.0.9 - resolution: "@grafana/lezer-traceql@npm:0.0.9" +"@grafana/lezer-traceql@npm:0.0.10": + version: 0.0.10 + resolution: "@grafana/lezer-traceql@npm:0.0.10" peerDependencies: "@lezer/lr": ^1.3.0 - checksum: 1511e34d47466a9bd4880cd04f817d263dc01c0d4cd4dea0ad1bd7829d59e3d6b15c723e9ba4b240d812fc5d288ec0c4726928a2da031ee3d60573a8861d21a3 + checksum: 9335458543a5155a4ece6a0d526dd78d8dba087f197b19ca80546529a39a107d62d4d0faa3fabc3f4d5caefc173cb1a6b93650a471101d34a0ee1c8f7c348de0 languageName: node linkType: hard @@ -17099,7 +17099,7 @@ __metadata: "@grafana/flamegraph": "workspace:*" "@grafana/google-sdk": "npm:0.1.1" "@grafana/lezer-logql": "npm:0.2.1" - "@grafana/lezer-traceql": "npm:0.0.9" + "@grafana/lezer-traceql": "npm:0.0.10" "@grafana/monaco-logql": "npm:^0.0.7" "@grafana/runtime": "workspace:*" "@grafana/scenes": "npm:^1.20.1"