New config setting for graphite datasource to control if json render request is POST or GET (Closes #345)

This commit is contained in:
Torkel Ödegaard
2014-04-24 17:58:34 +02:00
parent 827e1846a8
commit 9e4656e43f
3 changed files with 28 additions and 14 deletions
+1
View File
@@ -4,6 +4,7 @@
for very short absolute ranges (Issue #320)
- Increased resolution for graphite datapoints (maxDataPoints), now equal to panel pixel width. (Closes #5)
- Improvement to influxdb query editor, can now add where clause and alias (Issue #331, thanks @mavimo)
- New config setting for graphite datasource to control if json render request is POST or GET (Issue #345)
# 1.5.3 (2014-04-17)
- Add support for async scripted dashboards (Issue #274)
@@ -19,6 +19,7 @@ function (angular, _, $, config, kbn, moment) {
this.url = datasource.url;
this.editorSrc = 'app/partials/graphite/editor.html';
this.name = datasource.name;
this.render_method = datasource.render_method || 'POST';
}
GraphiteDatasource.prototype.query = function(options) {
@@ -37,14 +38,17 @@ function (angular, _, $, config, kbn, moment) {
return $q.when(this.url + '/render' + '?' + params.join('&'));
}
return this.doGraphiteRequest({
method: 'POST',
url: '/render',
data: params.join('&'),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
});
var httpOptions = { method: this.render_method, url: '/render' };
if (httpOptions.method === 'GET') {
httpOptions.url = httpOptions.url + '?' + params.join('&');
}
else {
httpOptions.data = params.join('&');
httpOptions.headers = { 'Content-Type': 'application/x-www-form-urlencoded' };
}
return this.doGraphiteRequest(httpOptions);
}
catch(err) {
return $q.reject(err);
+15 -6
View File
@@ -25,12 +25,21 @@ function (Settings) {
graphiteUrl: "http://"+window.location.hostname+":8080",
/**
* Multiple graphite servers? Comment out graphiteUrl and replace with
*
* datasources: {
* data_center_us: { type: 'graphite', url: 'http://<graphite_url>', default: true },
* data_center_eu: { type: 'graphite', url: 'http://<graphite_url>' }
* }
* Multiple graphite servers? Comment out graphiteUrl and replace with something like this:
datasources: {
data_center_us: {
type: 'graphite',
url: 'http://<graphite_url>',
default: true
},
data_center_eu: {
type: 'graphite',
url: 'http://<graphite_url>',
render_method: 'GET' // optional, use this to change render calls from POST to GET
}
},
*/
default_route: '/dashboard/file/default.json',