mirror of
https://github.com/grafana/grafana.git
synced 2025-01-27 16:57:14 -06:00
Fix "Link to Prometheus" button for proxied Prometheus sources.
This commit is contained in:
parent
228aac2d48
commit
3cc69112c1
@ -81,6 +81,11 @@ func getFrontendSettingsMap(c *middleware.Context) (map[string]interface{}, erro
|
||||
dsMap["index"] = ds.Database
|
||||
}
|
||||
|
||||
if ds.Type == m.DS_PROMETHEUS {
|
||||
// add unproxied server URL for link to Prometheus web UI
|
||||
dsMap["directUrl"] = ds.Url
|
||||
}
|
||||
|
||||
datasources[ds.Name] = dsMap
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@ const (
|
||||
DS_ES = "elasticsearch"
|
||||
DS_OPENTSDB = "opentsdb"
|
||||
DS_CLOUDWATCH = "cloudwatch"
|
||||
DS_PROMETHEUS = "prometheus"
|
||||
DS_ACCESS_DIRECT = "direct"
|
||||
DS_ACCESS_PROXY = "proxy"
|
||||
)
|
||||
|
@ -21,12 +21,8 @@ function (angular, _, moment, dateMath) {
|
||||
this.name = datasource.name;
|
||||
this.supportMetrics = true;
|
||||
|
||||
var url = datasource.url;
|
||||
if (url[url.length-1] === '/') {
|
||||
// remove trailing slash
|
||||
url = url.substr(0, url.length - 1);
|
||||
}
|
||||
this.url = url;
|
||||
this.url = datasource.url.replace(/\/$/g, '');
|
||||
this.directUrl = datasource.directUrl.replace(/\/$/g, '');
|
||||
this.basicAuth = datasource.basicAuth;
|
||||
this.lastErrors = {};
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ function (angular, _, kbn, dateMath) {
|
||||
};
|
||||
|
||||
var hash = encodeURIComponent(JSON.stringify([expr]));
|
||||
return $scope.datasource.url + '/graph#' + hash;
|
||||
return $scope.datasource.directUrl + '/graph#' + hash;
|
||||
};
|
||||
|
||||
$scope.calculateInterval = function() {
|
||||
|
@ -10,11 +10,11 @@ describe('PrometheusDatasource', function() {
|
||||
beforeEach(angularMocks.module('grafana.services'));
|
||||
beforeEach(ctx.createService('PrometheusDatasource'));
|
||||
beforeEach(function() {
|
||||
ctx.ds = new ctx.service({ url: '', user: 'test', password: 'mupp' });
|
||||
ctx.ds = new ctx.service({ url: 'proxied', directUrl: 'direct', user: 'test', password: 'mupp' });
|
||||
});
|
||||
describe('When querying prometheus with one target using query editor target spec', function() {
|
||||
var results;
|
||||
var urlExpected = '/api/v1/query_range?query=' +
|
||||
var urlExpected = 'proxied/api/v1/query_range?query=' +
|
||||
encodeURIComponent('test{job="testjob"}') +
|
||||
'&start=1443438675&end=1443460275&step=60s';
|
||||
var query = {
|
||||
@ -53,7 +53,7 @@ describe('PrometheusDatasource', function() {
|
||||
status: "success",
|
||||
data: ["value1", "value2", "value3"]
|
||||
};
|
||||
ctx.$httpBackend.expect('GET', '/api/v1/label/resource/values').respond(response);
|
||||
ctx.$httpBackend.expect('GET', 'proxied/api/v1/label/resource/values').respond(response);
|
||||
ctx.ds.metricFindQuery('label_values(resource)').then(function(data) { results = data; });
|
||||
ctx.$httpBackend.flush();
|
||||
ctx.$rootScope.$apply();
|
||||
@ -71,7 +71,7 @@ describe('PrometheusDatasource', function() {
|
||||
]
|
||||
}
|
||||
};
|
||||
ctx.$httpBackend.expect('GET', /\/api\/v1\/query\?query=count\(metric\)%20by%20\(resource\)&time=.*/).respond(response);
|
||||
ctx.$httpBackend.expect('GET', /proxied\/api\/v1\/query\?query=count\(metric\)%20by%20\(resource\)&time=.*/).respond(response);
|
||||
ctx.ds.metricFindQuery('label_values(metric, resource)').then(function(data) { results = data; });
|
||||
ctx.$httpBackend.flush();
|
||||
ctx.$rootScope.$apply();
|
||||
@ -82,7 +82,7 @@ describe('PrometheusDatasource', function() {
|
||||
status: "success",
|
||||
data: ["metric1","metric2","metric3","nomatch"]
|
||||
};
|
||||
ctx.$httpBackend.expect('GET', '/api/v1/label/__name__/values').respond(response);
|
||||
ctx.$httpBackend.expect('GET', 'proxied/api/v1/label/__name__/values').respond(response);
|
||||
ctx.ds.metricFindQuery('metrics(metric.*)').then(function(data) { results = data; });
|
||||
ctx.$httpBackend.flush();
|
||||
ctx.$rootScope.$apply();
|
||||
|
Loading…
Reference in New Issue
Block a user