code-editor: prometheus metrics autocomplete

This commit is contained in:
Alexander Zobnin
2017-08-09 10:58:00 +03:00
parent aa670244f1
commit 1c8c746956
3 changed files with 28 additions and 2 deletions

View File

@@ -125,6 +125,23 @@ function link(scope, elem, attrs) {
}
});
let extCompleter = {
getCompletions: getExtCompletions
};
function getExtCompletions(editor, session, pos, prefix, callback) {
scope.getMetrics(prefix).then(results => {
let wordList = results;
callback(null, wordList.map(word => {
return {
caption: word,
value: word,
meta: "metric"
};
}));
});
}
function setLangMode(lang) {
let aceModeName = `ace/mode/${lang}`;
fixModuleUrl("mode", lang);
@@ -136,6 +153,7 @@ function link(scope, elem, attrs) {
enableLiveAutocompletion: true,
enableSnippets: true
});
codeEditor.completers.push(extCompleter);
});
}
@@ -157,7 +175,8 @@ export function codeEditorDirective() {
template: editorTemplate,
scope: {
content: "=",
onChange: "&"
onChange: "&",
getMetrics: "="
},
link: link
};

View File

@@ -7,7 +7,9 @@
<div class="gf-form-inline">
<div class="gf-form gf-form--grow">
<code-editor content="ctrl.target.expr" on-change="ctrl.refreshMetricData()" data-mode="prometheus"></code-editor>
<code-editor content="ctrl.target.expr" on-change="ctrl.refreshMetricData()"
get-metrics="ctrl.getMetricsAutocomplete" data-mode="prometheus">
</code-editor>
</div>
</div>

View File

@@ -15,6 +15,7 @@ class PrometheusQueryCtrl extends QueryCtrl {
formats: any;
oldTarget: any;
suggestMetrics: any;
getMetricsAutocomplete: any;
linkToPrometheus: any;
/** @ngInject */
@@ -51,6 +52,10 @@ class PrometheusQueryCtrl extends QueryCtrl {
this.datasource.performSuggestQuery(query).then(callback);
};
this.getMetricsAutocomplete = (query) => {
return this.datasource.performSuggestQuery(query);
};
this.updateLink();
}