Datasources: Extend properties for the datasource-test tracking event (#62292)

chore: extend properties for the test datasource tracking event
pull/62215/head
Levente Balogh 3 years ago committed by GitHub
parent 0d2a786816
commit 9b2abe7613
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      public/app/features/datasources/state/actions.test.ts
  2. 4
      public/app/features/datasources/state/actions.ts
  3. 3
      public/app/features/datasources/state/hooks.ts
  4. 2
      public/app/features/datasources/tracking.ts

@ -72,7 +72,7 @@ const failDataSourceTest = async (error: object) => {
}; };
const dispatchedActions = await thunkTester(state) const dispatchedActions = await thunkTester(state)
.givenThunk(testDataSource) .givenThunk(testDataSource)
.whenThunkIsDispatched('Azure Monitor', dependencies); .whenThunkIsDispatched('Azure Monitor', DATASOURCES_ROUTES.Edit, dependencies);
return dispatchedActions; return dispatchedActions;
}; };
@ -234,7 +234,7 @@ describe('testDataSource', () => {
}; };
const dispatchedActions = await thunkTester(state) const dispatchedActions = await thunkTester(state)
.givenThunk(testDataSource) .givenThunk(testDataSource)
.whenThunkIsDispatched('CloudWatch', dependencies); .whenThunkIsDispatched('CloudWatch', DATASOURCES_ROUTES.Edit, dependencies);
expect(dispatchedActions).toEqual([testDataSourceStarting(), testDataSourceSucceeded(state.testingStatus)]); expect(dispatchedActions).toEqual([testDataSourceStarting(), testDataSourceSucceeded(state.testingStatus)]);
expect(trackDataSourceTested).toHaveBeenCalledWith({ expect(trackDataSourceTested).toHaveBeenCalledWith({
@ -242,6 +242,7 @@ describe('testDataSource', () => {
datasource_uid: 'CW1234', datasource_uid: 'CW1234',
grafana_version: '1.0', grafana_version: '1.0',
success: true, success: true,
editLink: '/datasources/edit/CloudWatch',
}); });
}); });
@ -270,7 +271,7 @@ describe('testDataSource', () => {
}; };
const dispatchedActions = await thunkTester(state) const dispatchedActions = await thunkTester(state)
.givenThunk(testDataSource) .givenThunk(testDataSource)
.whenThunkIsDispatched('Azure Monitor', dependencies); .whenThunkIsDispatched('Azure Monitor', DATASOURCES_ROUTES.Edit, dependencies);
expect(dispatchedActions).toEqual([testDataSourceStarting(), testDataSourceFailed(result)]); expect(dispatchedActions).toEqual([testDataSourceStarting(), testDataSourceFailed(result)]);
expect(trackDataSourceTested).toHaveBeenCalledWith({ expect(trackDataSourceTested).toHaveBeenCalledWith({
@ -278,6 +279,7 @@ describe('testDataSource', () => {
datasource_uid: 'azM0nit0R', datasource_uid: 'azM0nit0R',
grafana_version: '1.0', grafana_version: '1.0',
success: false, success: false,
editLink: '/datasources/edit/Azure Monitor',
}); });
}); });

@ -90,6 +90,7 @@ export const initDataSourceSettings = (
export const testDataSource = ( export const testDataSource = (
dataSourceName: string, dataSourceName: string,
editRoute = DATASOURCES_ROUTES.Edit,
dependencies: TestDataSourceDependencies = { dependencies: TestDataSourceDependencies = {
getDatasourceSrv, getDatasourceSrv,
getBackendSrv, getBackendSrv,
@ -97,6 +98,7 @@ export const testDataSource = (
): ThunkResult<void> => { ): ThunkResult<void> => {
return async (dispatch: ThunkDispatch, getState) => { return async (dispatch: ThunkDispatch, getState) => {
const dsApi = await dependencies.getDatasourceSrv().get(dataSourceName); const dsApi = await dependencies.getDatasourceSrv().get(dataSourceName);
const editLink = editRoute.replace(/:uid/gi, dataSourceName);
if (!dsApi.testDatasource) { if (!dsApi.testDatasource) {
return; return;
@ -114,6 +116,7 @@ export const testDataSource = (
plugin_id: dsApi.type, plugin_id: dsApi.type,
datasource_uid: dsApi.uid, datasource_uid: dsApi.uid,
success: true, success: true,
editLink,
}); });
} catch (err) { } catch (err) {
let message: string | undefined; let message: string | undefined;
@ -134,6 +137,7 @@ export const testDataSource = (
plugin_id: dsApi.type, plugin_id: dsApi.type,
datasource_uid: dsApi.uid, datasource_uid: dsApi.uid,
success: false, success: false,
editLink,
}); });
} }
}); });

@ -43,8 +43,9 @@ export const useInitDataSourceSettings = (uid: string) => {
export const useTestDataSource = (uid: string) => { export const useTestDataSource = (uid: string) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const dataSourcesRoutes = useDataSourcesRoutes();
return () => dispatch(testDataSource(uid)); return () => dispatch(testDataSource(uid, dataSourcesRoutes.Edit));
}; };
export const useLoadDataSources = () => { export const useLoadDataSources = () => {

@ -53,4 +53,6 @@ type DataSourceTestedProps = {
plugin_version?: string; plugin_version?: string;
/** Whether or not the datasource test succeeded = the datasource was successfully configured */ /** Whether or not the datasource test succeeded = the datasource was successfully configured */
success: boolean; success: boolean;
/** The URL that points to the edit page for the datasoruce. We are using this to be able to distinguish between the performance of different datasource edit locations. */
editLink?: string;
}; };

Loading…
Cancel
Save