mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
AzureMonitor: Avoid instantiating appInsights for AppInsights for gov cloud (#35772)
This commit is contained in:
parent
fee3582fb1
commit
4ac2ed5de6
@ -25,14 +25,17 @@ import InsightsAnalyticsDatasource from './insights_analytics/insights_analytics
|
|||||||
import { migrateMetricsDimensionFilters } from './query_ctrl';
|
import { migrateMetricsDimensionFilters } from './query_ctrl';
|
||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
import AzureResourceGraphDatasource from './azure_resource_graph/azure_resource_graph_datasource';
|
import AzureResourceGraphDatasource from './azure_resource_graph/azure_resource_graph_datasource';
|
||||||
|
import { getAzureCloud } from './credentials';
|
||||||
|
|
||||||
export default class Datasource extends DataSourceApi<AzureMonitorQuery, AzureDataSourceJsonData> {
|
export default class Datasource extends DataSourceApi<AzureMonitorQuery, AzureDataSourceJsonData> {
|
||||||
azureMonitorDatasource: AzureMonitorDatasource;
|
azureMonitorDatasource: AzureMonitorDatasource;
|
||||||
appInsightsDatasource: AppInsightsDatasource;
|
|
||||||
azureLogAnalyticsDatasource: AzureLogAnalyticsDatasource;
|
azureLogAnalyticsDatasource: AzureLogAnalyticsDatasource;
|
||||||
insightsAnalyticsDatasource: InsightsAnalyticsDatasource;
|
|
||||||
resourcePickerData: ResourcePickerData;
|
resourcePickerData: ResourcePickerData;
|
||||||
azureResourceGraphDatasource: AzureResourceGraphDatasource;
|
azureResourceGraphDatasource: AzureResourceGraphDatasource;
|
||||||
|
/** @deprecated */
|
||||||
|
appInsightsDatasource?: AppInsightsDatasource;
|
||||||
|
/** @deprecated */
|
||||||
|
insightsAnalyticsDatasource?: InsightsAnalyticsDatasource;
|
||||||
|
|
||||||
pseudoDatasource: Record<AzureQueryType, DataSourceWithBackend>;
|
pseudoDatasource: Record<AzureQueryType, DataSourceWithBackend>;
|
||||||
optionsKey: Record<AzureQueryType, string>;
|
optionsKey: Record<AzureQueryType, string>;
|
||||||
@ -43,18 +46,23 @@ export default class Datasource extends DataSourceApi<AzureMonitorQuery, AzureDa
|
|||||||
) {
|
) {
|
||||||
super(instanceSettings);
|
super(instanceSettings);
|
||||||
this.azureMonitorDatasource = new AzureMonitorDatasource(instanceSettings);
|
this.azureMonitorDatasource = new AzureMonitorDatasource(instanceSettings);
|
||||||
this.appInsightsDatasource = new AppInsightsDatasource(instanceSettings);
|
|
||||||
this.azureLogAnalyticsDatasource = new AzureLogAnalyticsDatasource(instanceSettings);
|
this.azureLogAnalyticsDatasource = new AzureLogAnalyticsDatasource(instanceSettings);
|
||||||
this.insightsAnalyticsDatasource = new InsightsAnalyticsDatasource(instanceSettings);
|
|
||||||
this.azureResourceGraphDatasource = new AzureResourceGraphDatasource(instanceSettings);
|
this.azureResourceGraphDatasource = new AzureResourceGraphDatasource(instanceSettings);
|
||||||
this.resourcePickerData = new ResourcePickerData(instanceSettings);
|
this.resourcePickerData = new ResourcePickerData(instanceSettings);
|
||||||
|
|
||||||
const pseudoDatasource: any = {};
|
const pseudoDatasource: any = {};
|
||||||
pseudoDatasource[AzureQueryType.ApplicationInsights] = this.appInsightsDatasource;
|
|
||||||
pseudoDatasource[AzureQueryType.AzureMonitor] = this.azureMonitorDatasource;
|
pseudoDatasource[AzureQueryType.AzureMonitor] = this.azureMonitorDatasource;
|
||||||
pseudoDatasource[AzureQueryType.InsightsAnalytics] = this.insightsAnalyticsDatasource;
|
|
||||||
pseudoDatasource[AzureQueryType.LogAnalytics] = this.azureLogAnalyticsDatasource;
|
pseudoDatasource[AzureQueryType.LogAnalytics] = this.azureLogAnalyticsDatasource;
|
||||||
pseudoDatasource[AzureQueryType.AzureResourceGraph] = this.azureResourceGraphDatasource;
|
pseudoDatasource[AzureQueryType.AzureResourceGraph] = this.azureResourceGraphDatasource;
|
||||||
|
|
||||||
|
const cloud = getAzureCloud(instanceSettings);
|
||||||
|
if (cloud === 'azuremonitor' || cloud === 'chinaazuremonitor') {
|
||||||
|
// AppInsights and InsightAnalytics are only supported for Public and Azure China clouds
|
||||||
|
this.appInsightsDatasource = new AppInsightsDatasource(instanceSettings);
|
||||||
|
this.insightsAnalyticsDatasource = new InsightsAnalyticsDatasource(instanceSettings);
|
||||||
|
pseudoDatasource[AzureQueryType.ApplicationInsights] = this.appInsightsDatasource;
|
||||||
|
pseudoDatasource[AzureQueryType.InsightsAnalytics] = this.insightsAnalyticsDatasource;
|
||||||
|
}
|
||||||
this.pseudoDatasource = pseudoDatasource;
|
this.pseudoDatasource = pseudoDatasource;
|
||||||
|
|
||||||
const optionsKey: any = {};
|
const optionsKey: any = {};
|
||||||
@ -129,7 +137,7 @@ export default class Datasource extends DataSourceApi<AzureMonitorQuery, AzureDa
|
|||||||
return Promise.resolve([]);
|
return Promise.resolve([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const aiResult = this.appInsightsDatasource.metricFindQueryInternal(query);
|
const aiResult = this.appInsightsDatasource?.metricFindQueryInternal(query);
|
||||||
if (aiResult) {
|
if (aiResult) {
|
||||||
return aiResult;
|
return aiResult;
|
||||||
}
|
}
|
||||||
@ -153,7 +161,7 @@ export default class Datasource extends DataSourceApi<AzureMonitorQuery, AzureDa
|
|||||||
promises.push(this.azureMonitorDatasource.testDatasource());
|
promises.push(this.azureMonitorDatasource.testDatasource());
|
||||||
promises.push(this.azureLogAnalyticsDatasource.testDatasource());
|
promises.push(this.azureLogAnalyticsDatasource.testDatasource());
|
||||||
|
|
||||||
if (this.appInsightsDatasource.isConfigured()) {
|
if (this.appInsightsDatasource?.isConfigured()) {
|
||||||
promises.push(this.appInsightsDatasource.testDatasource());
|
promises.push(this.appInsightsDatasource.testDatasource());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,15 +249,15 @@ export default class Datasource extends DataSourceApi<AzureMonitorQuery, AzureDa
|
|||||||
|
|
||||||
/* Application Insights API method */
|
/* Application Insights API method */
|
||||||
getAppInsightsMetricNames() {
|
getAppInsightsMetricNames() {
|
||||||
return this.appInsightsDatasource.getMetricNames();
|
return this.appInsightsDatasource?.getMetricNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
getAppInsightsMetricMetadata(metricName: string) {
|
getAppInsightsMetricMetadata(metricName: string) {
|
||||||
return this.appInsightsDatasource.getMetricMetadata(metricName);
|
return this.appInsightsDatasource?.getMetricMetadata(metricName);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAppInsightsColumns(refId: string | number) {
|
getAppInsightsColumns(refId: string | number) {
|
||||||
return this.appInsightsDatasource.logAnalyticsColumns[refId];
|
return this.appInsightsDatasource?.logAnalyticsColumns[refId];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Azure Log Analytics */
|
/*Azure Log Analytics */
|
||||||
|
Loading…
Reference in New Issue
Block a user