Skip to content

Commit e8e0eeb

Browse files
committed
remove duplicate telemetry
1 parent 3e446a5 commit e8e0eeb

File tree

2 files changed

+1
-102
lines changed

2 files changed

+1
-102
lines changed

src/common/telemetry/constants.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,6 @@ export enum EventNames {
7474
* - reason: string ('tool_not_found')
7575
*/
7676
MANAGER_REGISTRATION_SKIPPED = 'MANAGER_REGISTRATION.SKIPPED',
77-
/**
78-
* Telemetry event fired after manager registration when PET discovered environments
79-
* of a kind whose corresponding manager did not register.
80-
* Properties:
81-
* - managerName: string (e.g. 'conda', 'pyenv', 'pipenv', 'poetry')
82-
* - petEnvCount: number (how many envs PET found for that kind)
83-
*/
84-
MANAGER_DISCOVERY_MISMATCH = 'MANAGER_DISCOVERY.MISMATCH',
8577
}
8678

8779
// Map all events to their properties
@@ -310,15 +302,4 @@ export interface IEventNamePropertyMapping {
310302
managerName: string;
311303
reason: 'tool_not_found';
312304
};
313-
314-
/* __GDPR__
315-
"manager_discovery.mismatch": {
316-
"managerName": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "owner": "StellaHuang95" },
317-
"petEnvCount": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true, "owner": "StellaHuang95" }
318-
}
319-
*/
320-
[EventNames.MANAGER_DISCOVERY_MISMATCH]: {
321-
managerName: string;
322-
petEnvCount: number;
323-
};
324305
}

src/extension.ts

Lines changed: 1 addition & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -96,92 +96,13 @@ import { collectEnvironmentInfo, getEnvManagerAndPackageManagerConfigLevels, run
9696
import { EnvironmentManagers, ProjectCreators, PythonProjectManager } from './internal.api';
9797
import { registerSystemPythonFeatures } from './managers/builtin/main';
9898
import { SysPythonManager } from './managers/builtin/sysPythonManager';
99-
import {
100-
createNativePythonFinder,
101-
isNativeEnvInfo,
102-
NativePythonEnvironmentKind,
103-
NativePythonFinder,
104-
} from './managers/common/nativePythonFinder';
99+
import { createNativePythonFinder, NativePythonFinder } from './managers/common/nativePythonFinder';
105100
import { IDisposable } from './managers/common/types';
106101
import { registerCondaFeatures } from './managers/conda/main';
107102
import { registerPipenvFeatures } from './managers/pipenv/main';
108103
import { registerPoetryFeatures } from './managers/poetry/main';
109104
import { registerPyenvFeatures } from './managers/pyenv/main';
110105

111-
/**
112-
* Map from PET NativePythonEnvironmentKind to the manager name used in registration.
113-
* Only includes kinds that have a dedicated manager (not system/venv/etc.).
114-
*/
115-
const PET_KIND_TO_MANAGER: ReadonlyMap<NativePythonEnvironmentKind, string> = new Map([
116-
[NativePythonEnvironmentKind.conda, 'conda'],
117-
[NativePythonEnvironmentKind.pyenv, 'pyenv'],
118-
[NativePythonEnvironmentKind.pyenvVirtualEnv, 'pyenv'],
119-
[NativePythonEnvironmentKind.pipenv, 'pipenv'],
120-
[NativePythonEnvironmentKind.poetry, 'poetry'],
121-
]);
122-
123-
/**
124-
* Checks whether PET discovered environments whose corresponding manager did not register.
125-
* Uses a soft (cached) refresh so it doesn't trigger additional PET work.
126-
*/
127-
async function checkPetManagerMismatch(
128-
nativeFinder: NativePythonFinder,
129-
envManagers: EnvironmentManagers,
130-
): Promise<void> {
131-
const registeredIds = new Set(envManagers.managers.map((m) => m.id));
132-
133-
// Map manager names to their expected managerId prefix
134-
const managerIdPrefixes: ReadonlyMap<string, string> = new Map([
135-
['conda', 'ms-python.python:conda'],
136-
['pyenv', 'ms-python.python:pyenv'],
137-
['pipenv', 'ms-python.python:pipenv'],
138-
['poetry', 'ms-python.python:poetry'],
139-
]);
140-
141-
// Use a single cached refresh to avoid triggering per-kind hard refreshes on cache miss
142-
let allEnvs;
143-
try {
144-
allEnvs = await nativeFinder.refresh(false);
145-
} catch {
146-
// PET query failed — don't block post-init
147-
return;
148-
}
149-
150-
// Filter to only environment entries (not manager entries)
151-
const envInfos = allEnvs.filter(isNativeEnvInfo);
152-
153-
// Group PET kinds by manager name to avoid double-counting (e.g. pyenv + pyenvVirtualEnv)
154-
const kindsByManager = new Map<string, NativePythonEnvironmentKind[]>();
155-
for (const [kind, managerName] of PET_KIND_TO_MANAGER) {
156-
const existing = kindsByManager.get(managerName) ?? [];
157-
existing.push(kind);
158-
kindsByManager.set(managerName, existing);
159-
}
160-
161-
for (const [managerName, kinds] of kindsByManager) {
162-
const expectedPrefix = managerIdPrefixes.get(managerName);
163-
if (!expectedPrefix) {
164-
continue;
165-
}
166-
167-
// Check if the corresponding manager registered
168-
const isRegistered = Array.from(registeredIds).some((id) => id.startsWith(expectedPrefix));
169-
if (isRegistered) {
170-
continue;
171-
}
172-
173-
// Manager not registered — count PET environments of any related kind
174-
const totalPetEnvs = envInfos.filter((e) => e.kind !== undefined && kinds.includes(e.kind)).length;
175-
176-
if (totalPetEnvs > 0) {
177-
sendTelemetryEvent(EventNames.MANAGER_DISCOVERY_MISMATCH, undefined, {
178-
managerName,
179-
petEnvCount: totalPetEnvs,
180-
});
181-
}
182-
}
183-
}
184-
185106
export async function activate(context: ExtensionContext): Promise<PythonEnvironmentApi | undefined> {
186107
// Only skip activation if user explicitly set useEnvironmentsExtension to false.
187108
// When disabled, the main Python extension handles environments instead (legacy mode).
@@ -673,9 +594,6 @@ export async function activate(context: ExtensionContext): Promise<PythonEnviron
673594

674595
// Log discovery summary to help users troubleshoot environment detection issues
675596
await logDiscoverySummary(envManagers);
676-
677-
// Check for PET-vs-manager mismatches (PET found envs but manager didn't register)
678-
await checkPetManagerMismatch(nativeFinder, envManagers);
679597
} catch (postInitError) {
680598
traceError('Post-initialization tasks failed:', postInitError);
681599
}

0 commit comments

Comments
 (0)