[v9.5.x] Prometheus: Fix Query Inspector expression range value (#68019)

* Prometheus: Fix Query Inspector expression range value (#67919)

* Use metadata from respective query

* Unit test to cover having proper metadata for each query we run

(cherry picked from commit 69a38def63)

* Fix test
This commit is contained in:
ismail simsek
2023-05-08 20:05:18 +03:00
committed by GitHub
parent aca84878a2
commit 6b77a9ae80
2 changed files with 58 additions and 1 deletions
@@ -762,6 +762,60 @@ describe('Prometheus Result Transformer', () => {
expect(transformedTableDataFrames[1].fields[1].values.toArray()).toEqual([]);
expect(transformedTableDataFrames[1].fields[0].values.toArray()).toEqual([]);
});
it('transforms dataframes with metadata resolving from their refIds', () => {
const value1 = 'value1';
const value2 = 'value2';
const executedQueryForRefA = 'Expr: avg_over_time(access_evaluation_duration_bucket[15s])\nStep: 15s';
const executedQueryForRefB = 'Expr: avg_over_time(access_evaluation_duration_bucket[5m])\nStep: 15s';
const dataframes = [
new MutableDataFrame({
refId: 'A',
meta: {
typeVersion: [0, 1],
custom: {
resultType: 'vector',
},
executedQueryString: executedQueryForRefA,
},
fields: [
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
{
name: 'value',
type: FieldType.number,
values: [6, 5, 4],
labels: { label1: value1, label2: value2 },
},
],
}),
new MutableDataFrame({
refId: 'B',
meta: {
typeVersion: [0, 1],
custom: {
resultType: 'vector',
},
executedQueryString: executedQueryForRefB,
},
fields: [
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
{
name: 'value',
type: FieldType.number,
values: [6, 5, 4],
labels: { label1: value1, label2: value2 },
},
],
}),
];
const transformedTableDataFrames = transformDFToTable(dataframes);
expect(transformedTableDataFrames[0].meta).toBeTruthy();
expect(transformedTableDataFrames[1].meta).toBeTruthy();
expect(transformedTableDataFrames[0].meta?.executedQueryString).toEqual(executedQueryForRefA);
expect(transformedTableDataFrames[1].meta?.executedQueryString).toEqual(executedQueryForRefB);
});
});
describe('transform', () => {
@@ -231,7 +231,10 @@ export function transformDFToTable(dfs: DataFrame[]): DataFrame[] {
refId,
fields,
// Prometheus specific UI for instant queries
meta: { ...dfs[0].meta, preferredVisualisationType: 'rawPrometheus' as PreferredVisualisationType },
meta: {
...dataFramesByRefId[refId][0].meta,
preferredVisualisationType: 'rawPrometheus' as PreferredVisualisationType,
},
length: timeField.values.length,
};
});