From 7636d48ba403343a3eb7edabc4d1eba874964ece Mon Sep 17 00:00:00 2001 From: Jeremy Rickards Date: Sat, 11 Apr 2026 12:45:10 +0200 Subject: [PATCH 1/3] Add explicit `Loki` migration Signed-off-by: Jeremy Rickards --- .../loki-log-query/migrate/migrate.cue | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 loki/schemas/queries/loki-log-query/migrate/migrate.cue diff --git a/loki/schemas/queries/loki-log-query/migrate/migrate.cue b/loki/schemas/queries/loki-log-query/migrate/migrate.cue new file mode 100644 index 00000000..be5bb424 --- /dev/null +++ b/loki/schemas/queries/loki-log-query/migrate/migrate.cue @@ -0,0 +1,34 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package migrate + +#target: { + datasource: { + type: "loki" + ... + } + expr: string + ... +} + +kind: "LokiLogQuery" +spec: { + if #target.datasource.uid != _|_ { + datasource: { + kind: "LokiDatasource" + name: #target.datasource.uid + } + } + query: #target.expr +} From 25178963b52cf32134ee47e88f610ed33507e774 Mon Sep 17 00:00:00 2001 From: Jeremy Rickards Date: Sat, 11 Apr 2026 12:45:27 +0200 Subject: [PATCH 2/3] Add tests for Loki Query migration Signed-off-by: Jeremy Rickards --- .../loki-log-query/migrate/tests/basic/expected.json | 10 ++++++++++ .../loki-log-query/migrate/tests/basic/input.json | 8 ++++++++ .../migrate/tests/with-pipe-filter/expected.json | 10 ++++++++++ .../migrate/tests/with-pipe-filter/input.json | 8 ++++++++ 4 files changed, 36 insertions(+) create mode 100644 loki/schemas/queries/loki-log-query/migrate/tests/basic/expected.json create mode 100644 loki/schemas/queries/loki-log-query/migrate/tests/basic/input.json create mode 100644 loki/schemas/queries/loki-log-query/migrate/tests/with-pipe-filter/expected.json create mode 100644 loki/schemas/queries/loki-log-query/migrate/tests/with-pipe-filter/input.json diff --git a/loki/schemas/queries/loki-log-query/migrate/tests/basic/expected.json b/loki/schemas/queries/loki-log-query/migrate/tests/basic/expected.json new file mode 100644 index 00000000..190ba022 --- /dev/null +++ b/loki/schemas/queries/loki-log-query/migrate/tests/basic/expected.json @@ -0,0 +1,10 @@ +{ + "kind": "LokiLogQuery", + "spec": { + "datasource": { + "kind": "LokiDatasource", + "name": "loki" + }, + "query": "{container=\"nginx\"}" + } +} diff --git a/loki/schemas/queries/loki-log-query/migrate/tests/basic/input.json b/loki/schemas/queries/loki-log-query/migrate/tests/basic/input.json new file mode 100644 index 00000000..31f0afea --- /dev/null +++ b/loki/schemas/queries/loki-log-query/migrate/tests/basic/input.json @@ -0,0 +1,8 @@ +{ + "datasource": { + "type": "loki", + "uid": "loki" + }, + "expr": "{container=\"nginx\"}", + "refId": "A" +} diff --git a/loki/schemas/queries/loki-log-query/migrate/tests/with-pipe-filter/expected.json b/loki/schemas/queries/loki-log-query/migrate/tests/with-pipe-filter/expected.json new file mode 100644 index 00000000..7541ac54 --- /dev/null +++ b/loki/schemas/queries/loki-log-query/migrate/tests/with-pipe-filter/expected.json @@ -0,0 +1,10 @@ +{ + "kind": "LokiLogQuery", + "spec": { + "datasource": { + "kind": "LokiDatasource", + "name": "loki" + }, + "query": "{pod_name=~\"$pod\"} |~ \"$search\"" + } +} diff --git a/loki/schemas/queries/loki-log-query/migrate/tests/with-pipe-filter/input.json b/loki/schemas/queries/loki-log-query/migrate/tests/with-pipe-filter/input.json new file mode 100644 index 00000000..3942ef62 --- /dev/null +++ b/loki/schemas/queries/loki-log-query/migrate/tests/with-pipe-filter/input.json @@ -0,0 +1,8 @@ +{ + "datasource": { + "type": "loki", + "uid": "loki" + }, + "expr": "{pod_name=~\"$pod\"} |~ \"$search\"", + "refId": "A" +} From 891964efbb374a16695a80627b308048434fa3b2 Mon Sep 17 00:00:00 2001 From: Jeremy Rickards Date: Tue, 21 Apr 2026 14:54:35 +0200 Subject: [PATCH 3/3] Add test case without UID Signed-off-by: Jeremy Rickards --- .../loki-log-query/migrate/tests/no-uid/expected.json | 6 ++++++ .../queries/loki-log-query/migrate/tests/no-uid/input.json | 7 +++++++ 2 files changed, 13 insertions(+) create mode 100644 loki/schemas/queries/loki-log-query/migrate/tests/no-uid/expected.json create mode 100644 loki/schemas/queries/loki-log-query/migrate/tests/no-uid/input.json diff --git a/loki/schemas/queries/loki-log-query/migrate/tests/no-uid/expected.json b/loki/schemas/queries/loki-log-query/migrate/tests/no-uid/expected.json new file mode 100644 index 00000000..346c369e --- /dev/null +++ b/loki/schemas/queries/loki-log-query/migrate/tests/no-uid/expected.json @@ -0,0 +1,6 @@ +{ + "kind": "LokiLogQuery", + "spec": { + "query": "{job=\"nginx\"} |= \"error\"" + } +} diff --git a/loki/schemas/queries/loki-log-query/migrate/tests/no-uid/input.json b/loki/schemas/queries/loki-log-query/migrate/tests/no-uid/input.json new file mode 100644 index 00000000..859782b6 --- /dev/null +++ b/loki/schemas/queries/loki-log-query/migrate/tests/no-uid/input.json @@ -0,0 +1,7 @@ +{ + "datasource": { + "type": "loki" + }, + "expr": "{job=\"nginx\"} |= \"error\"", + "refId": "A" +}