From c2c5f529f39040c7bd1b61a648fdc87b120ed7fe Mon Sep 17 00:00:00 2001 From: bergquist Date: Wed, 18 Oct 2017 13:57:25 +0200 Subject: [PATCH] prometheus: add builtin template variable as range vectors add $__interval and $__interval_ms as range vectors to prometheus editor --- .../plugins/datasource/prometheus/completer.ts | 2 ++ .../prometheus/specs/completer_specs.ts | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/completer.ts b/public/app/plugins/datasource/prometheus/completer.ts index 0d018cb028d..dc2def62a91 100644 --- a/public/app/plugins/datasource/prometheus/completer.ts +++ b/public/app/plugins/datasource/prometheus/completer.ts @@ -80,6 +80,8 @@ export class PromCompleter { vectors.push({caption: value+unit, value: '['+value+unit, meta: 'range vector'}); } } + vectors.push({caption: '$__interval', value: '[$__interval', meta: 'range vector'}); + vectors.push({caption: '$__interval_ms', value: '[$__interval_ms', meta: 'range vector'}); callback(null, vectors); return; } diff --git a/public/app/plugins/datasource/prometheus/specs/completer_specs.ts b/public/app/plugins/datasource/prometheus/specs/completer_specs.ts index b8b5ef023f0..30dbae291f6 100644 --- a/public/app/plugins/datasource/prometheus/specs/completer_specs.ts +++ b/public/app/plugins/datasource/prometheus/specs/completer_specs.ts @@ -44,12 +44,18 @@ describe('Prometheus editor completer', function() { describe('When inside brackets', () => { it('Should return range vectors', () => { const session = getSessionStub({ - currentToken: {}, - tokens: [], - line: '', + currentToken: {type: 'paren.lparen', value: '[', index: 2, start: 9}, + tokens: [ + {type: 'identifier', value: 'node_cpu'}, + {type: 'paren.lparen', value: '['} + ], + line: 'node_cpu[', }); - completer.getCompletions(editor, session, {row: 0, column: 10}, '[', (s, res) => { - expect(res[0]).to.eql({caption: '1s', value: '[1s', meta: 'range vector'}); + + return completer.getCompletions(editor, session, {row: 0, column: 10}, '[', (s, res) => { + expect(res[0].caption).to.eql('1s'); + expect(res[0].value).to.eql('[1s'); + expect(res[0].meta).to.eql('range vector'); }); }); });