mirror of
https://github.com/grafana/grafana.git
synced 2026-09-05 04:40:13 -05:00
Implemented datasource test
This commit is contained in:
@@ -1,13 +1,63 @@
|
||||
/** @ngInject */
|
||||
export function StackdriverDatasource(this: any, instanceSettings, $q, backendSrv, templateSrv) {
|
||||
// this.basicAuth = instanceSettings.basicAuth;
|
||||
// this.url = instanceSettings.url;
|
||||
// this.name = instanceSettings.name;
|
||||
// this.graphiteVersion = instanceSettings.jsonData.graphiteVersion || '0.9';
|
||||
// this.supportsTags = supportsTags(this.graphiteVersion);
|
||||
// this.cacheTimeout = instanceSettings.cacheTimeout;
|
||||
// this.withCredentials = instanceSettings.withCredentials;
|
||||
// this.render_method = instanceSettings.render_method || 'POST';
|
||||
// this.funcDefs = null;
|
||||
// this.funcDefsPromise = null;
|
||||
export default class StackdriverDatasource {
|
||||
url: string;
|
||||
baseUrl: string;
|
||||
cloudName: string;
|
||||
|
||||
constructor(instanceSettings, private backendSrv) {
|
||||
this.cloudName = 'stackdriver';
|
||||
this.baseUrl = `/${this.cloudName}/`;
|
||||
this.url = instanceSettings.url;
|
||||
}
|
||||
|
||||
testDatasource() {
|
||||
const path = `v3/projects/raintank-production/timeSeries?aggregation.crossSeriesReducer=
|
||||
REDUCE_NONE&filter=metric.type%20%3D%20%22compute.googleapis.com%2Finstance%2Fcpu%2Fusage_time%
|
||||
22&aggregation.perSeriesAligner=ALIGN_NONE&interval.startTime=2018-09-04T05%3A16%3A02.383Z&interval.endTime=2018-09-04T11%3A16%3A02.383Z`;
|
||||
return this.doRequest(`${this.baseUrl}${path}`)
|
||||
.then(response => {
|
||||
if (response.status === 200) {
|
||||
return {
|
||||
status: 'success',
|
||||
message: 'Successfully queried the Azure Monitor service.',
|
||||
title: 'Success',
|
||||
};
|
||||
} else {
|
||||
throw new Error();
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
let message = 'Azure Monitor: ';
|
||||
message += error.statusText ? error.statusText + ': ' : '';
|
||||
|
||||
if (error.data && error.data.error && error.data.error.code) {
|
||||
message += error.data.error.code + '. ' + error.data.error.message;
|
||||
} else if (error.data && error.data.error) {
|
||||
message += error.data.error;
|
||||
} else if (error.data) {
|
||||
message += error.data;
|
||||
} else {
|
||||
message += 'Cannot connect to Azure Monitor REST API.';
|
||||
}
|
||||
return {
|
||||
status: 'error',
|
||||
message: message,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
doRequest(url, maxRetries = 1) {
|
||||
return this.backendSrv
|
||||
.datasourceRequest({
|
||||
url: this.url + url,
|
||||
method: 'GET',
|
||||
})
|
||||
.catch(error => {
|
||||
if (maxRetries > 0) {
|
||||
return this.doRequest(url, maxRetries - 1);
|
||||
}
|
||||
|
||||
throw error;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// import { StackdriverDatasource } from './datasource';
|
||||
import StackdriverDatasource from './datasource';
|
||||
// import { StackdriverQueryCtrl } from './query_ctrl';
|
||||
import { StackdriverConfigCtrl } from './config_ctrl';
|
||||
|
||||
@@ -7,7 +7,7 @@ import { StackdriverConfigCtrl } from './config_ctrl';
|
||||
// }
|
||||
|
||||
export {
|
||||
// StackdriverDatasource as Datasource,
|
||||
StackdriverDatasource as Datasource,
|
||||
// StackdriverQueryCtrl as QueryCtrl,
|
||||
StackdriverConfigCtrl as ConfigCtrl,
|
||||
// AnnotationsQueryCtrl,
|
||||
|
||||
@@ -12,5 +12,19 @@
|
||||
"info": {
|
||||
"description": "Data Source for Stackdriver",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"path": "stackdriver",
|
||||
"method": "GET",
|
||||
"url": "https://content-monitoring.googleapis.com",
|
||||
"jwtTokenAuth": {
|
||||
"params": {
|
||||
"token_uri": "{{.JsonData.tokenUri}}",
|
||||
"client_email": "{{.JsonData.clientEmail}}",
|
||||
"private_key": "{{.SecureJsonData.privateKey}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user