Skip to content

Commit 7076152

Browse files
author
David Kutugata
authored
add telemetry for kernel launcher and finder (#11345)
1 parent b8fd21c commit 7076152

File tree

4 files changed

+16
-0
lines changed

4 files changed

+16
-0
lines changed

src/client/datascience/constants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,8 @@ export enum Telemetry {
279279
KernelSpecNotFound = 'DS_INTERNAL.KERNEL_SPEC_NOT_FOUND',
280280
KernelRegisterFailed = 'DS_INTERNAL.KERNEL_REGISTER_FAILED',
281281
KernelEnumeration = 'DS_INTERNAL.KERNEL_ENUMERATION',
282+
KernelLauncherPerf = 'DS_INTERNAL.KERNEL_LAUNCHER_PERF',
283+
KernelFinderPerf = 'DS_INTERNAL.KERNEL_FINDER_PERF',
282284
JupyterInstallFailed = 'DS_INTERNAL.JUPYTER_INSTALL_FAILED',
283285
UserInstalledModule = 'DATASCIENCE.USER_INSTALLED_MODULE',
284286
JupyterCommandLineNonDefault = 'DS_INTERNAL.JUPYTER_CUSTOM_COMMAND_LINE',

src/client/datascience/kernel-launcher/kernelFinder.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import {
1414
KNOWN_PATH_SERVICE,
1515
PythonInterpreter
1616
} from '../../interpreter/contracts';
17+
import { captureTelemetry } from '../../telemetry';
18+
import { Telemetry } from '../constants';
1719
import { JupyterKernelSpec } from '../jupyter/kernels/jupyterKernelSpec';
1820
import { IJupyterKernelSpec } from '../types';
1921
import { IKernelFinder } from './types';
@@ -52,6 +54,7 @@ export class KernelFinder implements IKernelFinder {
5254
@inject(IExtensionContext) private readonly context: IExtensionContext
5355
) {}
5456

57+
@captureTelemetry(Telemetry.KernelFinderPerf)
5558
public async findKernelSpec(resource: Resource, kernelName?: string): Promise<IJupyterKernelSpec> {
5659
this.cache = await this.readCache();
5760
let foundKernel: IJupyterKernelSpec | undefined;

src/client/datascience/kernel-launcher/kernelLauncher.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import { createDeferred, Deferred } from '../../common/utils/async';
1616
import * as localize from '../../common/utils/localize';
1717
import { noop } from '../../common/utils/misc';
1818
import { IInterpreterService } from '../../interpreter/contracts';
19+
import { captureTelemetry } from '../../telemetry';
20+
import { Telemetry } from '../constants';
1921
import { IJupyterKernelSpec } from '../types';
2022
import { findIndexOfConnectionFile } from './kernelFinder';
2123
import { IKernelConnection, IKernelFinder, IKernelLauncher, IKernelProcess } from './types';
@@ -136,6 +138,7 @@ export class KernelLauncher implements IKernelLauncher {
136138
@inject(IFileSystem) private file: IFileSystem
137139
) {}
138140

141+
@captureTelemetry(Telemetry.KernelLauncherPerf)
139142
public async launch(resource: Resource, kernelName?: string | IJupyterKernelSpec): Promise<IKernelProcess> {
140143
let kernelSpec: IJupyterKernelSpec;
141144
if (!kernelName || typeof kernelName === 'string') {

src/client/telemetry/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1880,6 +1880,14 @@ export interface IEventNamePropertyMapping {
18801880
*/
18811881
source: 'cli' | 'connection';
18821882
};
1883+
/**
1884+
* Total time taken to Launch a raw kernel.
1885+
*/
1886+
[Telemetry.KernelLauncherPerf]: undefined | never;
1887+
/**
1888+
* Total time taken to find a kernel on disc.
1889+
*/
1890+
[Telemetry.KernelFinderPerf]: undefined | never;
18831891
/**
18841892
* Telemetry event sent if there's an error installing a jupyter required dependency
18851893
*

0 commit comments

Comments
 (0)