grafana/public/app/plugins/datasource/grafana-azure-monitor-datasource/module.ts
Yaelle Chaudy 711c504b39
Azure Monitor: Updated grafana_ds_azuremonitor_dashboard_loaded event, replaced array of queries for stats (#54286)
* Replaced array of queries for stats

* Added ds_version prop

* Added ds_version to tests

* Extracted event name to tracking file

* Extracted event to tracking file

* Removed ds_version - useless for core plugin

* Addressed comments

* Added note to event documentation
2022-08-30 09:55:40 +02:00

59 lines
2.2 KiB
TypeScript

import { DataSourcePlugin, DashboardLoadedEvent } from '@grafana/data';
import { getAppEvents } from '@grafana/runtime';
import { ConfigEditor } from './components/ConfigEditor';
import AzureMonitorQueryEditor from './components/QueryEditor';
import Datasource from './datasource';
import pluginJson from './plugin.json';
import { trackAzureMonitorDashboardLoaded } from './tracking';
import { AzureMonitorQuery, AzureDataSourceJsonData, AzureQueryType } from './types';
export const plugin = new DataSourcePlugin<Datasource, AzureMonitorQuery, AzureDataSourceJsonData>(Datasource)
.setConfigEditor(ConfigEditor)
.setQueryEditor(AzureMonitorQueryEditor);
// Track dashboard loads to RudderStack
getAppEvents().subscribe<DashboardLoadedEvent<AzureMonitorQuery>>(
DashboardLoadedEvent,
({ payload: { dashboardId, orgId, userId, grafanaVersion, queries } }) => {
const azureQueries = queries[pluginJson.id];
let stats = {
[AzureQueryType.AzureMonitor]: {
hidden: 0,
visible: 0,
},
[AzureQueryType.LogAnalytics]: {
hidden: 0,
visible: 0,
},
[AzureQueryType.AzureResourceGraph]: {
hidden: 0,
visible: 0,
},
};
azureQueries.forEach((query) => {
if (
query.queryType === AzureQueryType.AzureMonitor ||
query.queryType === AzureQueryType.LogAnalytics ||
query.queryType === AzureQueryType.AzureResourceGraph
) {
stats[query.queryType][query.hide ? 'hidden' : 'visible']++;
}
});
if (azureQueries && azureQueries.length > 0) {
trackAzureMonitorDashboardLoaded({
grafana_version: grafanaVersion,
dashboard_id: dashboardId,
org_id: orgId,
azure_monitor_queries: stats[AzureQueryType.AzureMonitor].visible,
azure_log_analytics_queries: stats[AzureQueryType.LogAnalytics].visible,
azure_resource_graph_queries: stats[AzureQueryType.AzureResourceGraph].visible,
azure_monitor_queries_hidden: stats[AzureQueryType.AzureMonitor].hidden,
azure_log_analytics_queries_hidden: stats[AzureQueryType.LogAnalytics].hidden,
azure_resource_graph_queries_hidden: stats[AzureQueryType.AzureResourceGraph].hidden,
});
}
}
);