diff --git a/packages/grafana-prometheus/src/result_transformer.test.ts b/packages/grafana-prometheus/src/result_transformer.test.ts index b530babd4f5..761216b4230 100644 --- a/packages/grafana-prometheus/src/result_transformer.test.ts +++ b/packages/grafana-prometheus/src/result_transformer.test.ts @@ -350,6 +350,62 @@ describe('Prometheus Result Transformer', () => { expect(series.data[1].meta?.preferredVisualisationType).toEqual('rawPrometheus' as PreferredVisualisationType); }); + it('histogram results with table format have le values as strings for table filtering', () => { + const options = { + targets: [ + { + format: 'table', + refId: 'A', + }, + ], + } as unknown as DataQueryRequest; + const response = { + state: 'Done', + data: [ + createDataFrame({ + refId: 'A', + fields: [ + { name: 'Time', type: FieldType.time, values: [6, 5, 4] }, + { + name: 'Value', + type: FieldType.number, + values: [10, 10, 0], + labels: { le: '1' }, + }, + ], + }), + createDataFrame({ + refId: 'A', + fields: [ + { name: 'Time', type: FieldType.time, values: [6, 5, 4] }, + { + name: 'Value', + type: FieldType.number, + values: [30, 10, 40], + labels: { le: '+Inf' }, + }, + ], + }), + createDataFrame({ + refId: 'A', + fields: [ + { name: 'Time', type: FieldType.time, values: [6, 5, 4] }, + { + name: 'Value', + type: FieldType.number, + values: [20, 10, 30], + labels: { le: '2' }, + }, + ], + }), + ], + } as unknown as DataQueryResponse; + + const series = transformV2(response, options, {}); + const leFields = series.data[0].fields.filter((f) => f.name === 'le'); + const leValuesAreStrings = leFields[0].values.every((v) => typeof v === 'string'); + expect(leValuesAreStrings).toBe(true); + }); // Heatmap frames can either have a name of the metric, or if there is no metric, a name of "Value" it('results with heatmap format (no metric name) should be correctly transformed', () => { const options = { diff --git a/packages/grafana-prometheus/src/result_transformer.ts b/packages/grafana-prometheus/src/result_transformer.ts index a3f11c39087..7a901a0f995 100644 --- a/packages/grafana-prometheus/src/result_transformer.ts +++ b/packages/grafana-prometheus/src/result_transformer.ts @@ -202,11 +202,10 @@ export function transformDFToTable(dfs: DataFrame[]): DataFrame[] { .forEach((label) => { // If we don't have label in labelFields, add it if (!labelFields.some((l) => l.name === label)) { - const numberField = label === HISTOGRAM_QUANTILE_LABEL_NAME; labelFields.push({ name: label, config: { filterable: true }, - type: numberField ? FieldType.number : FieldType.string, + type: FieldType.string, values: [], }); } @@ -280,9 +279,6 @@ function getDataLinks(options: ExemplarTraceIdDestination): DataLink[] { function getLabelValue(metric: PromMetric, label: string): string | number { if (metric.hasOwnProperty(label)) { - if (label === HISTOGRAM_QUANTILE_LABEL_NAME) { - return parseSampleValue(metric[label]); - } return metric[label]; } return '';