From 3d18c4d6140c5331d9b6efea35f52402db9911cf Mon Sep 17 00:00:00 2001 From: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> Date: Wed, 19 Aug 2020 08:29:23 +0200 Subject: [PATCH] Pass scoped vars to create label (#27047) --- .../datasource/prometheus/datasource.ts | 21 +++++++++++++++---- .../prometheus/result_transformer.ts | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index bbb1eff6a58..9938f6e6221 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -171,7 +171,13 @@ export class PrometheusDatasource extends DataSourceApi return templateSrv.variableExists(target.expr); } - processResult = (response: any, query: PromQueryRequest, target: PromQuery, responseListLength: number) => { + processResult = ( + response: any, + query: PromQueryRequest, + target: PromQuery, + responseListLength: number, + scopedVars?: ScopedVars + ) => { // Keeping original start/end for transformers const transformerOptions = { format: target.format, @@ -181,6 +187,7 @@ export class PrometheusDatasource extends DataSourceApi end: query.end, query: query.expr, responseListLength, + scopedVars, refId: target.refId, valueWithRefId: target.valueWithRefId, meta: { @@ -256,7 +263,7 @@ export class PrometheusDatasource extends DataSourceApi return this.exploreQuery(queries, activeTargets, end); } - return this.panelsQuery(queries, activeTargets, end, options.requestId); + return this.panelsQuery(queries, activeTargets, end, options.requestId, options.scopedVars); } private exploreQuery(queries: PromQueryRequest[], activeTargets: PromQuery[], end: number) { @@ -287,7 +294,13 @@ export class PrometheusDatasource extends DataSourceApi return merge(...subQueries); } - private panelsQuery(queries: PromQueryRequest[], activeTargets: PromQuery[], end: number, requestId: string) { + private panelsQuery( + queries: PromQueryRequest[], + activeTargets: PromQuery[], + end: number, + requestId: string, + scopedVars: ScopedVars + ) { const observables: Array>> = queries.map((query, index) => { const target = activeTargets[index]; @@ -298,7 +311,7 @@ export class PrometheusDatasource extends DataSourceApi return observable.pipe( filter((response: any) => (response.cancelled ? false : true)), map((response: any) => { - const data = this.processResult(response, query, target, queries.length); + const data = this.processResult(response, query, target, queries.length, scopedVars); return data; }) ); diff --git a/public/app/plugins/datasource/prometheus/result_transformer.ts b/public/app/plugins/datasource/prometheus/result_transformer.ts index 5b45bff527a..f2c3609d583 100644 --- a/public/app/plugins/datasource/prometheus/result_transformer.ts +++ b/public/app/plugins/datasource/prometheus/result_transformer.ts @@ -160,7 +160,7 @@ export class ResultTransformer { createLabelInfo(labels: { [key: string]: string }, options: any): { name?: string; labels: Labels; title?: string } { if (options?.legendFormat) { - const title = this.renderTemplate(this.templateSrv.replace(options.legendFormat), labels); + const title = this.renderTemplate(this.templateSrv.replace(options.legendFormat, options?.scopedVars), labels); return { name: title, title, labels }; }