From 2d52e5d26c8e893709133554cb25b6a8fcd5cac0 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Mon, 10 Sep 2018 19:09:43 +0200 Subject: [PATCH] Stackdriver: Use metric type from query controller state --- .../datasource/stackdriver/datasource.ts | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/public/app/plugins/datasource/stackdriver/datasource.ts b/public/app/plugins/datasource/stackdriver/datasource.ts index dcbe379ead0..4a8cf1a6c01 100644 --- a/public/app/plugins/datasource/stackdriver/datasource.ts +++ b/public/app/plugins/datasource/stackdriver/datasource.ts @@ -13,13 +13,12 @@ export default class StackdriverDatasource { async query(options) { const queries = options.targets.filter(target => !target.hide).map(t => ({ - queryType: 'raw', refId: t.refId, datasourceId: this.id, - metric: t.metricType, + metricType: `metric.type="${t.metricType}"`, })); try { - const response = await this.backendSrv.datasourceRequest({ + const { data } = await this.backendSrv.datasourceRequest({ url: '/api/tsdb/query', method: 'POST', data: { @@ -28,7 +27,18 @@ export default class StackdriverDatasource { queries, }, }); - return response; + + const result = []; + + if (data.results) { + Object['values'](data.results).forEach(queryRes => { + queryRes.series.forEach(series => { + result.push({ target: series.name, datapoints: series.points }); + }); + }); + } + + return { data: result }; } catch (error) { console.log(error); } @@ -77,7 +87,7 @@ export default class StackdriverDatasource { try { const metricsApiPath = `v3/projects/${projectId}/metricDescriptors`; const { data } = await this.doRequest(`${this.baseUrl}${metricsApiPath}`); - return data.metricDescriptors.map(m => ({ id: m.name, name: m.displayName })); + return data.metricDescriptors.map(m => ({ id: m.type, name: m.displayName })); } catch (error) { console.log(error); }