elasticsearch: improve validation and error message when adding/testing elasticsearch ds, #7836

This commit is contained in:
Torkel Ödegaard 2017-03-29 16:03:15 +02:00
parent 5702c57452
commit 3b235612fd
2 changed files with 18 additions and 6 deletions

View File

@ -168,12 +168,22 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
}; };
this.testDatasource = function() { this.testDatasource = function() {
timeSrv.setTime({ from: 'now-1m', to: 'now' }); timeSrv.setTime({ from: 'now-1m', to: 'now' }, true);
return this._get('/_stats').then(function() { // validate that the index exist and has date field
return { status: "success", message: "Data source is working", title: "Success" }; return this.getFields({type: 'date'}).then(function(dateFields) {
}, function(err) { var timeField = _.find(dateFields, {text: this.timeField});
if (!timeField) {
return { status: "error", message: "No date field named " + this.timeField + ' found', title: "Error" };
}
return { status: "success", message: "Index OK. Time field name OK.", title: "Success" };
}.bind(this), function(err) {
console.log(err);
if (err.data && err.data.error) { if (err.data && err.data.error) {
return { status: "error", message: angular.toJson(err.data.error), title: "Error" }; var message = angular.toJson(err.data.error);
if (err.data.error.reason) {
message = err.data.error.reason;
}
return { status: "error", message: message, title: "Error" };
} else { } else {
return { status: "error", message: err.status, title: "Error" }; return { status: "error", message: err.status, title: "Error" };
} }

View File

@ -280,10 +280,12 @@ function (queryDef) {
} }
}); });
} }
var size = 500; var size = 500;
if (queryDef.size) { if (queryDef.size) {
size = queryDef.size; size = queryDef.size;
} }
query.aggs = { query.aggs = {
"1": { "1": {
"terms": { "terms": {