send suggest duration telemetry as json raw data

This commit is contained in:
Johannes Rieken 2020-10-26 17:15:01 +01:00
parent 9b4f91b31c
commit 6f511d74bb

View file

@ -23,7 +23,6 @@ import { EditorOption } from 'vs/editor/common/config/editorOptions';
import { isLowSurrogate, isHighSurrogate } from 'vs/base/common/strings';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { generateUuid } from 'vs/base/common/uuid';
import { ILogService } from 'vs/platform/log/common/log';
export interface ICancelEvent {
@ -489,31 +488,11 @@ export class SuggestModel implements IDisposable {
private _reportDurationsTelemetry(durations: CompletionDurations): void {
type DurationEntry = {
session: string;
providerName: string;
elapsedProvider: number;
elapsedOverall: number;
};
type Durations = {
session: string;
elapsedAll: number;
};
type PerformanceAndHealth<T> = { [P in keyof T]: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' } };
type DurationEntryClassification = PerformanceAndHealth<DurationEntry>;
type DurationsClassification = PerformanceAndHealth<Durations>;
setTimeout(() => {
this._logService.trace('suggest.durations', durations);
const session = generateUuid();
this._telemetryService.publicLog2<Durations, DurationsClassification>('suggest.durations.all', { session, elapsedAll: durations.elapsed });
for (let item of durations.entries) {
this._telemetryService.publicLog2<DurationEntry, DurationEntryClassification>('suggest.durations.entry', { session, ...item });
}
type Durations = { data: string; };
type DurationsClassification = { data: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' } };
this._telemetryService.publicLog2<Durations, DurationsClassification>('suggest.durations.json', { data: JSON.stringify(durations) });
this._logService.debug('suggest.durations.json', durations);
});
}