diff --git a/public/app/plugins/datasource/stackdriver/datasource.ts b/public/app/plugins/datasource/stackdriver/datasource.ts index 683cf42feca..dcbe379ead0 100644 --- a/public/app/plugins/datasource/stackdriver/datasource.ts +++ b/public/app/plugins/datasource/stackdriver/datasource.ts @@ -1,5 +1,6 @@ /** @ngInject */ export default class StackdriverDatasource { + id: number; url: string; baseUrl: string; @@ -7,10 +8,30 @@ export default class StackdriverDatasource { this.baseUrl = `/stackdriver/`; this.url = instanceSettings.url; this.doRequest = this.doRequest; + this.id = instanceSettings.id; } - query() { - return Promise.resolve(); + async query(options) { + const queries = options.targets.filter(target => !target.hide).map(t => ({ + queryType: 'raw', + refId: t.refId, + datasourceId: this.id, + metric: t.metricType, + })); + try { + const response = await this.backendSrv.datasourceRequest({ + url: '/api/tsdb/query', + method: 'POST', + data: { + from: options.range.from.valueOf().toString(), + to: options.range.to.valueOf().toString(), + queries, + }, + }); + return response; + } catch (error) { + console.log(error); + } } testDatasource() {