Skip to content

Commit 5f1d7be

Browse files
paula-stachomcasimirgribnoysup
authored
refactor: separate telemetry package COMPASS-8019 (#5940)
Co-authored-by: Maurizio Casimirri <[email protected]> Co-authored-by: Sergey Petushkov <[email protected]>
1 parent 8dcf863 commit 5f1d7be

File tree

237 files changed

+1644
-1007
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

237 files changed

+1644
-1007
lines changed

configs/eslint-config-compass/plugin.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module.exports = {
1818
'@typescript-eslint/no-restricted-imports': [
1919
'error',
2020
restrictedProviderImport('@mongodb-js/compass-logging'),
21+
restrictedProviderImport('@mongodb-js/compass-telemetry'),
2122
restrictedProviderImport('@mongodb-js/compass-app-stores'),
2223
restrictedProviderImport('@mongodb-js/my-queries-storage'),
2324
restrictedProviderImport('@mongodb-js/atlas-service'),

package-lock.json

Lines changed: 281 additions & 81 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/atlas-service/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
"dependencies": {
7676
"@mongodb-js/compass-components": "^1.25.1",
7777
"@mongodb-js/compass-logging": "^1.3.0",
78+
"@mongodb-js/compass-telemetry": "^1.0.0",
7879
"@mongodb-js/compass-user-data": "^0.2.0",
7980
"@mongodb-js/compass-utils": "^0.6.4",
8081
"@mongodb-js/devtools-connect": "^2.6.3",

packages/atlas-service/src/atlas-service.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Sinon from 'sinon';
33
import { AtlasService } from './atlas-service';
44
import type { PreferencesAccess } from 'compass-preferences-model';
55
import { createSandboxFromDefaultPreferences } from 'compass-preferences-model';
6-
import { createNoopLoggerAndTelemetry } from '@mongodb-js/compass-logging/provider';
6+
import { createNoopLogger } from '@mongodb-js/compass-logging/provider';
77
import { CompassAtlasAuthService } from './compass-atlas-auth-service';
88

99
const ATLAS_CONFIG = {
@@ -27,7 +27,7 @@ function getAtlasService(
2727
const atlasService = new AtlasService(
2828
authService,
2929
preferences,
30-
createNoopLoggerAndTelemetry()
30+
createNoopLogger()
3131
);
3232
atlasService['config'] = ATLAS_CONFIG;
3333
return atlasService;

packages/atlas-service/src/atlas-service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
throwIfNetworkTrafficDisabled,
77
throwIfNotOk,
88
} from './util';
9-
import type { LoggerAndTelemetry } from '@mongodb-js/compass-logging';
9+
import type { Logger } from '@mongodb-js/compass-logging';
1010
import type { PreferencesAccess } from 'compass-preferences-model';
1111

1212
export type AtlasServiceOptions = {
@@ -18,7 +18,7 @@ export class AtlasService {
1818
constructor(
1919
private readonly authService: AtlasAuthService,
2020
private readonly preferences: PreferencesAccess,
21-
private readonly logger: LoggerAndTelemetry,
21+
private readonly logger: Logger,
2222
private readonly options?: AtlasServiceOptions
2323
) {
2424
this.config = getAtlasConfig(preferences);

packages/atlas-service/src/main.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,16 @@ import type { IntrospectInfo, AtlasUserInfo, AtlasServiceConfig } from './util';
2020
import { throwIfAborted } from '@mongodb-js/compass-utils';
2121
import type { HadronIpcMain } from 'hadron-ipc';
2222
import { ipcMain } from 'hadron-ipc';
23-
import {
24-
createLoggerAndTelemetry,
25-
mongoLogId,
26-
} from '@mongodb-js/compass-logging';
23+
import { createLogger, mongoLogId } from '@mongodb-js/compass-logging';
2724
import type { PreferencesAccess } from 'compass-preferences-model';
2825
import { SecretStore } from './secret-store';
2926
import { OidcPluginLogger } from './oidc-plugin-logger';
3027
import { spawn } from 'child_process';
3128
import { getAtlasConfig } from './util';
29+
import { createIpcTrack } from '@mongodb-js/compass-telemetry';
3230

33-
const { log, track } = createLoggerAndTelemetry('COMPASS-ATLAS-SERVICE');
31+
const { log } = createLogger('COMPASS-ATLAS-SERVICE');
32+
const track = createIpcTrack();
3433

3534
const redirectRequestHandler = oidcServerRequestHandler.bind(null, {
3635
productName: 'Compass',

packages/atlas-service/src/provider.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { createContext, useContext, useMemo } from 'react';
22
import type { AtlasAuthService } from './atlas-auth-service';
33
import { AtlasService, type AtlasServiceOptions } from './atlas-service';
44
import { preferencesLocator } from 'compass-preferences-model/provider';
5-
import { useLoggerAndTelemetry } from '@mongodb-js/compass-logging/provider';
5+
import { useLogger } from '@mongodb-js/compass-logging/provider';
66
import {
77
createServiceLocator,
88
createServiceProvider,
@@ -33,7 +33,7 @@ export const AtlasServiceProvider: React.FC<{
3333
options,
3434
children,
3535
}) {
36-
const logger = useLoggerAndTelemetry('ATLAS-SERVICE');
36+
const logger = useLogger('ATLAS-SERVICE');
3737
const preferences = preferencesLocator();
3838
const authService = atlasAuthServiceLocator();
3939

packages/compass-aggregations/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"@mongodb-js/compass-field-store": "^9.7.0",
7272
"@mongodb-js/compass-generative-ai": "^0.15.0",
7373
"@mongodb-js/compass-logging": "^1.3.0",
74+
"@mongodb-js/compass-telemetry": "^1.0.0",
7475
"@mongodb-js/compass-utils": "^0.6.4",
7576
"@mongodb-js/compass-workspaces": "^0.13.0",
7677
"@mongodb-js/explain-plan-helper": "^1.1.12",

packages/compass-aggregations/src/components/aggregation-side-panel/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ import {
1212
SearchInput,
1313
} from '@mongodb-js/compass-components';
1414
import { connect } from 'react-redux';
15-
import { useLoggerAndTelemetry } from '@mongodb-js/compass-logging/provider';
1615
import { toggleSidePanel } from '../../modules/side-panel';
1716
import { STAGE_WIZARD_USE_CASES } from './stage-wizard-use-cases';
1817
import { FeedbackLink } from './feedback-link';
1918
import { addWizard } from '../../modules/pipeline-builder/stage-editor';
2019
import { UseCaseCard } from './stage-wizard-use-cases';
20+
import { useTelemetry } from '@mongodb-js/compass-telemetry/provider';
2121

2222
const containerStyles = css({
2323
height: '100%',
@@ -78,7 +78,7 @@ export const AggregationSidePanel = ({
7878
onCloseSidePanel,
7979
onSelectUseCase,
8080
}: AggregationSidePanelProps) => {
81-
const { track } = useLoggerAndTelemetry('COMPASS-AGGREGATIONS-UI');
81+
const track = useTelemetry();
8282
const [searchText, setSearchText] = useState<string>('');
8383
const darkMode = useDarkMode();
8484

packages/compass-aggregations/src/components/create-view-modal/create-view-modal.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import {
1010
TextInput,
1111
} from '@mongodb-js/compass-components';
1212
import { createView, changeViewName, close } from '../../modules/create-view';
13-
import type { LoggerAndTelemetry } from '@mongodb-js/compass-logging/provider';
14-
import { withLoggerAndTelemetry } from '@mongodb-js/compass-logging/provider';
1513
import type { CreateViewRootState } from '../../stores/create-view';
14+
import { withTelemetry } from '@mongodb-js/compass-telemetry/provider';
15+
import type { TrackFunction } from '@mongodb-js/compass-telemetry';
1616

1717
const progressContainerStyles = css({
1818
display: 'flex',
@@ -31,7 +31,7 @@ type CreateViewModalProps = {
3131
pipeline?: unknown[];
3232
isRunning?: boolean;
3333
error: Error | null;
34-
logger: LoggerAndTelemetry;
34+
track: TrackFunction;
3535
};
3636

3737
class CreateViewModal extends PureComponent<CreateViewModalProps> {
@@ -46,7 +46,7 @@ class CreateViewModal extends PureComponent<CreateViewModalProps> {
4646

4747
componentDidUpdate(prevProps: CreateViewModalProps) {
4848
if (prevProps.isVisible !== this.props.isVisible && this.props.isVisible) {
49-
this.props.logger.track('Screen', { name: 'create_view_modal' });
49+
this.props.track('Screen', { name: 'create_view_modal' });
5050
}
5151
}
5252

@@ -113,13 +113,12 @@ const mapStateToProps = (state: CreateViewRootState) => ({
113113
* Connect the redux store to the component.
114114
* (dispatch)
115115
*/
116-
const MappedCreateViewModal = withLoggerAndTelemetry(
116+
const MappedCreateViewModal = withTelemetry(
117117
connect(mapStateToProps, {
118118
createView,
119119
changeViewName,
120120
closeModal: close,
121-
})(CreateViewModal),
122-
'COMPASS-CREATE-VIEW-UI'
121+
})(CreateViewModal)
123122
);
124123

125124
export default MappedCreateViewModal;

0 commit comments

Comments
 (0)