From 91ea8dccf5b32cd657d6f448225d1e06f5a0ee5d Mon Sep 17 00:00:00 2001 From: David Kaltschmidt Date: Mon, 26 Nov 2018 13:43:22 +0100 Subject: [PATCH] Explore: Fix JS error when switching between 2 prometheus datasources - since the DataQuery rewrite, Explore starts by submitting its queries (Explore cant know if the queries are emtpty) - The datasource intercepts an empty query and returns an empty list of time series, and also no table for the table query. - The query hinter then received no series to analyse and was not guarding against this. - This PR adds this guard. --- public/app/plugins/datasource/prometheus/datasource.ts | 2 +- public/app/plugins/datasource/prometheus/query_hints.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index 41f78ec7421..2c7c62d881b 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -437,7 +437,7 @@ export class PrometheusDatasource { } getQueryHints(query: DataQuery, result: any[]) { - return getQueryHints(query.expr, result, this); + return getQueryHints(query.expr || '', result, this); } loadRules() { diff --git a/public/app/plugins/datasource/prometheus/query_hints.ts b/public/app/plugins/datasource/prometheus/query_hints.ts index ea505832468..ce019e3ddcb 100644 --- a/public/app/plugins/datasource/prometheus/query_hints.ts +++ b/public/app/plugins/datasource/prometheus/query_hints.ts @@ -96,7 +96,7 @@ export function getQueryHints(query: string, series?: any[], datasource?: any): } } - if (series.length >= SUM_HINT_THRESHOLD_COUNT) { + if (series && series.length >= SUM_HINT_THRESHOLD_COUNT) { const simpleMetric = query.trim().match(/^\w+$/); if (simpleMetric) { hints.push({