Commit ef69d692 by Torkel Ödegaard

Time is now sent in utc when time correction is set to utc #143

parent a54f05e2
......@@ -7,5 +7,6 @@ define([
'./datasourceSrv',
'./keyboardManager',
'./annotationsSrv',
'./graphite/graphiteDatasource',
],
function () {});
\ No newline at end of file
define([
'angular',
'underscore',
'config',
'./graphite/graphiteDatasource'
'config'
],
function (angular, _, config, GraphiteDatasource) {
function (angular, _, config) {
'use strict';
var module = angular.module('kibana.services');
module.service('datasourceSrv', function($q, filterSrv, $http) {
module.service('datasourceSrv', function($q, filterSrv, $http, GraphiteDatasource) {
var defaultDatasource = _.findWhere(_.values(config.datasources), { default: true } );
this.default = new GraphiteDatasource(defaultDatasource, $q, filterSrv, $http);
......
......@@ -9,158 +9,168 @@ define([
function (angular, _, $, config, kbn, moment) {
'use strict';
function GraphiteDatasource(datasource, $q, filterSrv, $http) {
this.url = datasource.url;
this.type = 'graphite';
this.basicAuth = datasource.basicAuth;
this.$q = $q;
this.filterSrv = filterSrv;
this.$http = $http;
}
GraphiteDatasource.prototype.query = function(options) {
try {
var graphOptions = {
from: this.translateTime(options.range.from),
until: this.translateTime(options.range.to),
targets: options.targets,
format: options.format,
maxDataPoints: options.maxDataPoints,
};
var params = this.buildGraphiteParams(graphOptions);
if (options.format === 'png') {
return this.$q.when(this.url + '/render' + '?' + params.join('&'));
}
var module = angular.module('kibana.services');
return this.doGraphiteRequest({
method: 'POST',
url: '/render',
data: params.join('&'),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
});
}
catch(err) {
return this.$q.reject(err);
module.factory('GraphiteDatasource', function(dashboard, $q, filterSrv, $http) {
function GraphiteDatasource(datasource, $q, filterSrv, $http) {
this.url = datasource.url;
this.type = 'graphite';
this.basicAuth = datasource.basicAuth;
this.$q = $q;
this.filterSrv = filterSrv;
this.$http = $http;
}
};
GraphiteDatasource.prototype.events = function(options) {
try {
var tags = '';
if (options.tags) {
tags = '&tags=' + options.tags;
GraphiteDatasource.prototype.query = function(options) {
try {
var graphOptions = {
from: this.translateTime(options.range.from),
until: this.translateTime(options.range.to),
targets: options.targets,
format: options.format,
maxDataPoints: options.maxDataPoints,
};
var params = this.buildGraphiteParams(graphOptions);
if (options.format === 'png') {
return this.$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',
}
});
}
catch(err) {
return this.$q.reject(err);
}
};
return this.doGraphiteRequest({
method: 'GET',
url: '/events/get_data?from=' + this.translateTime(options.range.from) + '&until=' + this.translateTime(options.range.to) + tags,
});
}
catch(err) {
return this.$q.reject(err);
}
};
GraphiteDatasource.prototype.events = function(options) {
try {
var tags = '';
if (options.tags) {
tags = '&tags=' + options.tags;
}
GraphiteDatasource.prototype.translateTime = function(date) {
if (_.isString(date)) {
if (date === 'now') {
return 'now';
return this.doGraphiteRequest({
method: 'GET',
url: '/events/get_data?from=' + this.translateTime(options.range.from) + '&until=' + this.translateTime(options.range.to) + tags,
});
}
else if (date.indexOf('now') >= 0) {
date = date.substring(3);
date = date.replace('m', 'min');
date = date.replace('M', 'mon');
return date;
catch(err) {
return this.$q.reject(err);
}
};
date = kbn.parseDate(date);
}
GraphiteDatasource.prototype.translateTime = function(date) {
if (_.isString(date)) {
if (date === 'now') {
return 'now';
}
else if (date.indexOf('now') >= 0) {
date = date.substring(3);
date = date.replace('m', 'min');
date = date.replace('M', 'mon');
return date;
}
date = moment.utc(date).local();
date = kbn.parseDate(date);
}
if (config.timezoneOffset) {
date = date.zone(config.timezoneOffset);
}
date = moment.utc(date);
if (dashboard.current.timezone === 'browser') {
date = date.local();
}
return date.format('HH:mm_YYYYMMDD');
};
if (config.timezoneOffset) {
date = date.zone(config.timezoneOffset);
}
GraphiteDatasource.prototype.metricFindQuery = function(query) {
var interpolated;
try {
interpolated = this.filterSrv.applyFilterToTarget(query);
}
catch(err) {
return this.$q.reject(err);
}
return date.format('HH:mm_YYYYMMDD');
};
return this.doGraphiteRequest({method: 'GET', url: '/metrics/find/?query=' + interpolated })
.then(function(results) {
return _.map(results.data, function(metric) {
return {
text: metric.text,
expandable: metric.expandable ? true : false
};
GraphiteDatasource.prototype.metricFindQuery = function(query) {
var interpolated;
try {
interpolated = this.filterSrv.applyFilterToTarget(query);
}
catch(err) {
return this.$q.reject(err);
}
return this.doGraphiteRequest({method: 'GET', url: '/metrics/find/?query=' + interpolated })
.then(function(results) {
return _.map(results.data, function(metric) {
return {
text: metric.text,
expandable: metric.expandable ? true : false
};
});
});
});
};
GraphiteDatasource.prototype.listDashboards = function(query) {
return this.doGraphiteRequest({ method: 'GET', url: '/dashboard/find/', params: {query: query || ''} })
.then(function(results) {
return results.data.dashboards;
});
};
GraphiteDatasource.prototype.loadDashboard = function(dashName) {
return this.doGraphiteRequest({method: 'GET', url: '/dashboard/load/' + encodeURIComponent(dashName) });
};
GraphiteDatasource.prototype.doGraphiteRequest = function(options) {
if (this.basicAuth) {
options.withCredentials = true;
options.headers = options.headers || {};
options.headers.Authorization = 'Basic ' + config.graphiteBasicAuth;
}
};
options.url = this.url + options.url;
GraphiteDatasource.prototype.listDashboards = function(query) {
return this.doGraphiteRequest({ method: 'GET', url: '/dashboard/find/', params: {query: query || ''} })
.then(function(results) {
return results.data.dashboards;
});
};
return this.$http(options);
};
GraphiteDatasource.prototype.loadDashboard = function(dashName) {
return this.doGraphiteRequest({method: 'GET', url: '/dashboard/load/' + encodeURIComponent(dashName) });
};
GraphiteDatasource.prototype.buildGraphiteParams = function(options) {
var clean_options = [];
var graphite_options = ['target', 'targets', 'from', 'until', 'rawData', 'format', 'maxDataPoints'];
GraphiteDatasource.prototype.doGraphiteRequest = function(options) {
if (this.basicAuth) {
options.withCredentials = true;
options.headers = options.headers || {};
options.headers.Authorization = 'Basic ' + config.graphiteBasicAuth;
}
if (options.format !== 'png') {
options['format'] = 'json';
}
options.url = this.url + options.url;
_.each(options, function (value, key) {
if ($.inArray(key, graphite_options) === -1) {
return;
}
return this.$http(options);
};
if (key === "targets") {
_.each(value, function (value) {
if (!value.hide) {
var targetValue = this.filterSrv.applyFilterToTarget(value.target);
clean_options.push("target=" + encodeURIComponent(targetValue));
}
}, this);
}
else if (value !== null) {
clean_options.push(key + "=" + encodeURIComponent(value));
GraphiteDatasource.prototype.buildGraphiteParams = function(options) {
var clean_options = [];
var graphite_options = ['target', 'targets', 'from', 'until', 'rawData', 'format', 'maxDataPoints'];
if (options.format !== 'png') {
options['format'] = 'json';
}
}, this);
return clean_options;
};
_.each(options, function (value, key) {
if ($.inArray(key, graphite_options) === -1) {
return;
}
if (key === "targets") {
_.each(value, function (value) {
if (!value.hide) {
var targetValue = this.filterSrv.applyFilterToTarget(value.target);
clean_options.push("target=" + encodeURIComponent(targetValue));
}
}, this);
}
else if (value !== null) {
clean_options.push(key + "=" + encodeURIComponent(value));
}
}, this);
return clean_options;
};
return GraphiteDatasource;
return GraphiteDatasource;
});
});
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -156,13 +156,6 @@
}
}
.histogram-legend-dot {
display:inline-block;
height:10px;
width:10px;
border-radius:5px;
}
.histogram-legend-item {
display:inline-block;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment