stackdriver: add resource types query

This commit is contained in:
Erik Sundell
2018-10-29 15:41:11 +01:00
parent cb0d563aae
commit b3edad40a9
2 changed files with 63 additions and 22 deletions

View File

@@ -44,6 +44,10 @@ export class StackdriverTemplateQueryComponent extends PureComponent<TemplateQue
this.setState({ metricDescriptors });
}
isLabelQuery(queryType) {
return ['metricLabels', 'resourceLabels'].indexOf(queryType) !== -1;
}
async loadTimeSeriesData() {
const refId = 'StackdriverTemplateQueryComponent';
const response = await this.props.datasource.getLabels(this.state.metricType, refId);
@@ -52,10 +56,6 @@ export class StackdriverTemplateQueryComponent extends PureComponent<TemplateQue
}
}
isLabelQuery(queryType) {
return ['metricLabels', 'resourceLabels'].indexOf(queryType) !== -1;
}
handleQueryTypeChange(event) {
this.setState({ type: event.target.value });
if (this.isLabelQuery(event.target.value)) {
@@ -87,6 +87,31 @@ export class StackdriverTemplateQueryComponent extends PureComponent<TemplateQue
this.props.onChange(queryModel);
}
switchMetaType(queryType) {
switch (queryType) {
case 'resourceLabels':
return (
<SimpleDropdown
value={this.state.resourceLabelKey}
options={this.state.resourceLabels}
onValueChange={this.onResourceLabelKeyChange}
label="Resource Labels"
/>
);
case 'metricLabels':
return (
<SimpleDropdown
value={this.state.metricLabelKey}
options={this.state.metricLabels}
onValueChange={this.onMetricLabelKeyChange}
label="Metric Labels"
/>
);
default:
return '';
}
}
renderSwitch(queryType) {
switch (queryType) {
case 'metricTypes':
@@ -95,22 +120,8 @@ export class StackdriverTemplateQueryComponent extends PureComponent<TemplateQue
);
case 'metricLabels':
case 'resourceLabels':
const dropdown =
queryType === 'resourceLabels' ? (
<SimpleDropdown
value={this.state.resourceLabelKey}
options={this.state.resourceLabels}
onValueChange={this.onResourceLabelKeyChange}
label="Resource Labels"
/>
) : (
<SimpleDropdown
value={this.state.metricLabelKey}
options={this.state.metricLabels}
onValueChange={this.onMetricLabelKeyChange}
label="Metric Labels"
/>
);
case 'resourceTypes':
const dropdown = this.switchMetaType(queryType);
return (
<React.Fragment>
<ServiceSelector metricDescriptors={this.state.metricDescriptors} onServiceChange={this.onServiceChange} />