diff --git a/public/app/plugins/datasource/graphite/gfunc.ts b/public/app/plugins/datasource/graphite/gfunc.ts index 15cb79f00b5..3fe341deaaf 100644 --- a/public/app/plugins/datasource/graphite/gfunc.ts +++ b/public/app/plugins/datasource/graphite/gfunc.ts @@ -966,7 +966,6 @@ export class FuncInstance { const str = this.def.name + '('; const parameters = _.map(this.params, (value, index) => { - const valueInterpolated = replaceVariables(value); let paramType; if (index < this.def.params.length) { @@ -980,6 +979,8 @@ export class FuncInstance { return value; } + const valueInterpolated = _.isString(value) ? replaceVariables(value) : value; + // param types that might be quoted // To quote variables correctly we need to interpolate it to check if it contains a numeric or string value if (_.includes(['int_or_interval', 'node_or_tag'], paramType) && _.isFinite(+valueInterpolated)) { diff --git a/public/app/plugins/datasource/graphite/specs/gfunc.test.ts b/public/app/plugins/datasource/graphite/specs/gfunc.test.ts index a1d888cea33..25461ad98d7 100644 --- a/public/app/plugins/datasource/graphite/specs/gfunc.test.ts +++ b/public/app/plugins/datasource/graphite/specs/gfunc.test.ts @@ -31,7 +31,8 @@ describe('when creating func instance from func names', () => { }); function replaceVariablesDummy(str: string) { - return str; + // important that this does replace + return str.replace('asdasdas', 'asdsad'); } describe('when rendering func instance', () => {