Skip to content

Commit 2610f57

Browse files
committed
feat: add telemetry for install/uninstall packages
1 parent 22f08ae commit 2610f57

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

src/common/telemetry/constants.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ export enum EventNames {
77

88
VENV_USING_UV = 'VENV.USING_UV',
99
VENV_CREATION = 'VENV.CREATION',
10+
11+
PACKAGE_MANAGE = 'PACKAGE.MANAGE',
1012
}
1113

1214
// Map all events to their properties
@@ -45,14 +47,25 @@ export interface IEventNamePropertyMapping {
4547
/* __GDPR__
4648
"venv.using_uv": {"owner": "karthiknadig" }
4749
*/
48-
[EventNames.VENV_USING_UV]: never | undefined;
49-
50-
/* __GDPR__
50+
[EventNames.VENV_USING_UV]: never | undefined /* __GDPR__
5151
"venv.creation": {
5252
"creationType": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "owner": "karthiknadig" }
5353
}
54-
*/
54+
*/;
5555
[EventNames.VENV_CREATION]: {
5656
creationType: 'quick' | 'custom';
5757
};
58+
59+
/* __GDPR__
60+
"package.install": {
61+
"managerId": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "owner": "karthiknadig" },
62+
"installPackageCount": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "owner": "karthiknadig" },
63+
"uninstallPackageCount": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "owner": "karthiknadig" }
64+
}
65+
*/
66+
[EventNames.PACKAGE_MANAGE]: {
67+
managerId: string;
68+
installPackageCount: number;
69+
uninstallPackageCount: number;
70+
};
5871
}

src/internal.api.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import {
2828
CreateEnvironmentOptions,
2929
} from './api';
3030
import { CreateEnvironmentNotSupported, RemoveEnvironmentNotSupported } from './common/errors/NotSupportedError';
31+
import { sendTelemetryEvent } from './common/telemetry/sender';
32+
import { EventNames } from './common/telemetry/constants';
3133

3234
export type EnvironmentManagerScope = undefined | string | Uri | PythonEnvironment;
3335
export type PackageManagerScope = undefined | string | Uri | PythonEnvironment | Package;
@@ -241,8 +243,13 @@ export class InternalPackageManager implements PackageManager {
241243
return this.manager.log;
242244
}
243245

244-
manage(environment: PythonEnvironment, options: PackageManagementOptions): Promise<void> {
245-
return this.manager.manage(environment, options);
246+
async manage(environment: PythonEnvironment, options: PackageManagementOptions): Promise<void> {
247+
await this.manager.manage(environment, options);
248+
sendTelemetryEvent(EventNames.PACKAGE_MANAGE, undefined, {
249+
managerId: this.id,
250+
installPackageCount: (options.install ?? []).length,
251+
uninstallPackageCount: (options.uninstall ?? []).length,
252+
});
246253
}
247254

248255
refresh(environment: PythonEnvironment): Promise<void> {

0 commit comments

Comments
 (0)