stackdriver: return values for services and metric types

This commit is contained in:
Erik Sundell
2018-10-26 14:03:05 +02:00
parent f0cba0b0d8
commit 7ccce76b80
9 changed files with 92 additions and 35 deletions

View File

@ -0,0 +1,36 @@
import { extractServicesFromMetricDescriptors, getMetricTypesByService } from './functions';
export default class StackdriverMetricFindQuery {
constructor(private datasource) {}
async query(query: any) {
switch (query.type) {
case 'services':
return this.handleServiceQueryType();
case 'metricTypes':
return this.handleMetricTypesQueryType(query);
default:
return [];
}
}
async handleServiceQueryType() {
const metricDescriptors = await this.datasource.getMetricTypes(this.datasource.projectName);
const services = extractServicesFromMetricDescriptors(metricDescriptors);
return services.map(s => ({
text: s.name,
expandable: true,
}));
}
async handleMetricTypesQueryType({ service }) {
if (!service) {
return [];
}
const metricDescriptors = await this.datasource.getMetricTypes(this.datasource.projectName);
return getMetricTypesByService(metricDescriptors, service).map(s => ({
text: s.name,
expandable: true,
}));
}
}