|
|
|
@ -43,7 +43,7 @@ export function PrometheusDatasource(instanceSettings, $q, backendSrv, templateS |
|
|
|
|
return value.replace(/[\\^$*+?.()|[\]{}]/g, '\\\\$&'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function interpolateQueryExpr(value, variable, defaultFormatFn) { |
|
|
|
|
this.interpolateQueryExpr = function(value, variable, defaultFormatFn) { |
|
|
|
|
// if no multi or include all do not regexEscape
|
|
|
|
|
if (!variable.multi && !variable.includeAll) { |
|
|
|
|
return value; |
|
|
|
@ -59,6 +59,7 @@ export function PrometheusDatasource(instanceSettings, $q, backendSrv, templateS |
|
|
|
|
|
|
|
|
|
// Called once per panel (graph)
|
|
|
|
|
this.query = function(options) { |
|
|
|
|
var self = this; |
|
|
|
|
var start = getPrometheusTime(options.range.from, false); |
|
|
|
|
var end = getPrometheusTime(options.range.to, true); |
|
|
|
|
|
|
|
|
@ -73,7 +74,7 @@ export function PrometheusDatasource(instanceSettings, $q, backendSrv, templateS |
|
|
|
|
activeTargets.push(target); |
|
|
|
|
|
|
|
|
|
var query: any = {}; |
|
|
|
|
query.expr = templateSrv.replace(target.expr, options.scopedVars, interpolateQueryExpr); |
|
|
|
|
query.expr = templateSrv.replace(target.expr, options.scopedVars, self.interpolateQueryExpr); |
|
|
|
|
|
|
|
|
|
var interval = target.interval || options.interval; |
|
|
|
|
var intervalFactor = target.intervalFactor || 1; |
|
|
|
@ -99,7 +100,6 @@ export function PrometheusDatasource(instanceSettings, $q, backendSrv, templateS |
|
|
|
|
return this.performTimeSeriesQuery(query, start, end); |
|
|
|
|
}, this)); |
|
|
|
|
|
|
|
|
|
var self = this; |
|
|
|
|
return $q.all(allQueryPromise) |
|
|
|
|
.then(function(allResponse) { |
|
|
|
|
var result = []; |
|
|
|
@ -160,7 +160,7 @@ export function PrometheusDatasource(instanceSettings, $q, backendSrv, templateS |
|
|
|
|
|
|
|
|
|
var interpolated; |
|
|
|
|
try { |
|
|
|
|
interpolated = templateSrv.replace(expr, {}, interpolateQueryExpr); |
|
|
|
|
interpolated = templateSrv.replace(expr, {}, this.interpolateQueryExpr); |
|
|
|
|
} catch (err) { |
|
|
|
|
return $q.reject(err); |
|
|
|
|
} |
|
|
|
|