From 4e22918010d33ac8d893562f51edb95accb27f8b Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Tue, 12 Mar 2019 10:23:07 +0300 Subject: [PATCH] heatmap: fix prometheus buckets sorting, closes #15637 --- .../plugins/datasource/prometheus/result_transformer.ts | 9 +++++---- public/app/plugins/panel/heatmap/heatmap_ctrl.ts | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/result_transformer.ts b/public/app/plugins/datasource/prometheus/result_transformer.ts index c3fbd7ee1d7..b0fab2564eb 100644 --- a/public/app/plugins/datasource/prometheus/result_transformer.ts +++ b/public/app/plugins/datasource/prometheus/result_transformer.ts @@ -1,5 +1,6 @@ import _ from 'lodash'; import TableModel from 'app/core/table_model'; +import { TimeSeries } from '@grafana/ui'; export class ResultTransformer { constructor(private templateSrv) {} @@ -18,10 +19,10 @@ export class ResultTransformer { ]; } else if (prometheusResult && options.format === 'heatmap') { let seriesList = []; - prometheusResult.sort(sortSeriesByLabel); for (const metricData of prometheusResult) { seriesList.push(this.transformMetricData(metricData, options, options.start, options.end)); } + seriesList.sort(sortSeriesByLabel); seriesList = this.transformToHistogramOverTime(seriesList); return seriesList; } else if (prometheusResult) { @@ -197,13 +198,13 @@ export class ResultTransformer { } } -function sortSeriesByLabel(s1, s2): number { +function sortSeriesByLabel(s1: TimeSeries, s2: TimeSeries): number { let le1, le2; try { // fail if not integer. might happen with bad queries - le1 = parseHistogramLabel(s1.metric.le); - le2 = parseHistogramLabel(s2.metric.le); + le1 = parseHistogramLabel(s1.target); + le2 = parseHistogramLabel(s2.target); } catch (err) { console.log(err); return 0; diff --git a/public/app/plugins/panel/heatmap/heatmap_ctrl.ts b/public/app/plugins/panel/heatmap/heatmap_ctrl.ts index 71e059a5750..772eabd131c 100644 --- a/public/app/plugins/panel/heatmap/heatmap_ctrl.ts +++ b/public/app/plugins/panel/heatmap/heatmap_ctrl.ts @@ -97,7 +97,7 @@ const colorSchemes = [ { name: 'YlOrRd', value: 'interpolateYlOrRd', invert: 'dark' }, ]; -const dsSupportHistogramSort = ['prometheus', 'elasticsearch']; +const dsSupportHistogramSort = ['elasticsearch']; export class HeatmapCtrl extends MetricsPanelCtrl { static templateUrl = 'module.html';