From fc4b3a2b03d707a3fe6fe679caaaea9faafb27c1 Mon Sep 17 00:00:00 2001 From: Leon Sorokin Date: Sun, 8 Sep 2024 13:18:58 -0500 Subject: [PATCH] Prometheus: Retain time field's interval with Table formatted queries (#93065) --- .../src/result_transformer.test.ts | 17 +++++++++++++++++ .../src/result_transformer.ts | 2 ++ 2 files changed, 19 insertions(+) diff --git a/packages/grafana-prometheus/src/result_transformer.test.ts b/packages/grafana-prometheus/src/result_transformer.test.ts index 5dfc9d53ee9..1da1426e73d 100644 --- a/packages/grafana-prometheus/src/result_transformer.test.ts +++ b/packages/grafana-prometheus/src/result_transformer.test.ts @@ -1213,4 +1213,21 @@ describe('Prometheus Result Transformer', () => { expect(transformedTableDataFrames[1].meta?.executedQueryString).toEqual(executedQueryForRefB); }); }); + + it("transforms dataFrame and retains time field's `config.interval`", () => { + const df = createDataFrame({ + refId: 'A', + fields: [ + { name: 'time', type: FieldType.time, values: [1, 2, 3], config: { interval: 1 } }, + { + name: 'value', + type: FieldType.number, + values: [5, 10, 5], + }, + ], + }); + + const tableDf = transformDFToTable([df])[0]; + expect(tableDf.fields[0].config.interval).toEqual(1); + }); }); diff --git a/packages/grafana-prometheus/src/result_transformer.ts b/packages/grafana-prometheus/src/result_transformer.ts index d3bac7fff9c..4916c10e68b 100644 --- a/packages/grafana-prometheus/src/result_transformer.ts +++ b/packages/grafana-prometheus/src/result_transformer.ts @@ -212,6 +212,8 @@ export function transformDFToTable(dfs: DataFrame[]): DataFrame[] { // Fill valueField, timeField and labelFields with values dataFramesByRefId[refId].forEach((df) => { + timeField.config.interval ??= df.fields[0]?.config.interval; + const timeFields = df.fields[0]?.values ?? []; const dataFields = df.fields[1]?.values ?? []; timeFields.forEach((value) => timeField.values.push(value));