Graphite: Ensure template variables are interpolated correctly (#105354)

This commit is contained in:
Andreas Christou
2025-05-14 11:14:54 +01:00
committed by GitHub
parent aa72d800a1
commit e60ece3389
2 changed files with 17 additions and 1 deletions
@@ -446,6 +446,22 @@ describe('graphiteDatasource', () => {
expect(results[2]).toBe('target=' + encodeURIComponent('asPercent(series1,sumSeries(series1))'));
});
it('should replace target placeholder when nesting query references with template variables', () => {
ctx.templateSrv.init([{ type: 'query', name: 'metric', current: { value: ['aMetricName'] } }]);
const originalTargetMap = {
A: '[[metric]]',
B: 'sumSeries(#A)',
C: 'asPercent(#A,#B)',
};
const results = ctx.ds.buildGraphiteParams(
{
targets: [{ target: '[[metric]]' }, { target: 'sumSeries(#A)' }, { target: 'asPercent(#A,#B)' }],
},
originalTargetMap
);
expect(results[2]).toBe('target=' + encodeURIComponent('asPercent(aMetricName,sumSeries(aMetricName))'));
});
it('should fix wrong minute interval parameters', () => {
const originalTargetMap = {
A: "summarize(prod.25m.count, '25m', 'sum')",
@@ -1026,7 +1026,7 @@ export class GraphiteDatasource
}
targetValue = targets[target.refId];
targetValue = targetValue.replace(regex, nestedSeriesRegexReplacer);
targetValue = this.templateSrv.replace(targetValue.replace(regex, nestedSeriesRegexReplacer));
targets[target.refId] = targetValue;
if (!target.hide) {