mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-08 09:23:38 +01:00
more GDPR classification
This commit is contained in:
@@ -140,6 +140,11 @@ export class MainThreadEditors implements MainThreadEditorsShape {
|
||||
|
||||
$tryShowEditor(id: string, position: EditorPosition): TPromise<void> {
|
||||
// check how often this is used
|
||||
/* __GDPR__
|
||||
"api.deprecated" : {
|
||||
"function" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this._telemetryService.publicLog('api.deprecated', { function: 'TextEditor.show' });
|
||||
|
||||
let mainThreadEditor = this._documentsAndEditors.getEditor(id);
|
||||
@@ -155,6 +160,11 @@ export class MainThreadEditors implements MainThreadEditorsShape {
|
||||
|
||||
$tryHideEditor(id: string): TPromise<void> {
|
||||
// check how often this is used
|
||||
/* __GDPR__
|
||||
"api.deprecated" : {
|
||||
"function" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this._telemetryService.publicLog('api.deprecated', { function: 'TextEditor.hide' });
|
||||
|
||||
let mainThreadEditor = this._documentsAndEditors.getEditor(id);
|
||||
|
||||
@@ -266,6 +266,11 @@ export class SaveParticipant implements ISaveParticipant {
|
||||
});
|
||||
|
||||
return sequence(promiseFactory).then(() => {
|
||||
/* __GDPR__
|
||||
"saveParticipantStats" : {
|
||||
}
|
||||
*/
|
||||
// TODO: We need to move off dynamic property names as we can't declare them statically in the registry.
|
||||
this._telemetryService.publicLog('saveParticipantStats', stats);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -108,6 +108,11 @@ export abstract class Composite extends Component implements IComposite {
|
||||
// Only submit telemetry data when not running from an integration test
|
||||
if (this._telemetryService && this._telemetryService.publicLog) {
|
||||
const eventName: string = 'compositeOpen';
|
||||
/* __GDPR__
|
||||
"compositeOpen" : {
|
||||
"composite" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this._telemetryService.publicLog(eventName, { composite: this.getId() });
|
||||
}
|
||||
}
|
||||
@@ -121,6 +126,12 @@ export abstract class Composite extends Component implements IComposite {
|
||||
if (this._telemetryService && this._telemetryService.publicLog) {
|
||||
const eventName: string = 'compositeShown';
|
||||
this._telemetryData.composite = this.getId();
|
||||
/* __GDPR__
|
||||
"compositeShown" : {
|
||||
"timeSpent" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"composite": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this._telemetryService.publicLog(eventName, this._telemetryData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,6 +309,12 @@ export abstract class CompositePart<T extends Composite> extends Part {
|
||||
|
||||
// Log in telemetry
|
||||
if (this.telemetryService) {
|
||||
/* __GDPR__
|
||||
"workbenchActionExecuted" : {
|
||||
"id" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"from": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('workbenchActionExecuted', { id: e.action.id, from: this.nameForTelemetry });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -443,6 +443,9 @@ export class EditorGroupsControl extends Themable implements IEditorGroupsContro
|
||||
|
||||
// Log this fact in telemetry
|
||||
if (this.telemetryService) {
|
||||
/* __GDPR__
|
||||
"workbenchEditorMaximized" : {}
|
||||
*/
|
||||
this.telemetryService.publicLog('workbenchEditorMaximized');
|
||||
}
|
||||
|
||||
|
||||
@@ -166,6 +166,13 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService
|
||||
|
||||
this.revealIfOpen = editorConfig.revealIfOpen;
|
||||
|
||||
/* __GDPR__
|
||||
"workbenchEditorConfiguration" : {
|
||||
"${include}": [
|
||||
"${IWorkbenchEditorConfiguration}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('workbenchEditorConfiguration', editorConfig);
|
||||
} else {
|
||||
this.tabOptions = {
|
||||
@@ -248,10 +255,24 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService
|
||||
}
|
||||
|
||||
private onEditorOpened(identifier: EditorIdentifier): void {
|
||||
/* __GDPR__
|
||||
"editorOpened" : {
|
||||
"${include}": [
|
||||
"${EditorTelemetryDescriptor}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('editorOpened', identifier.editor.getTelemetryDescriptor());
|
||||
}
|
||||
|
||||
private onEditorClosed(event: EditorCloseEvent): void {
|
||||
/* __GDPR__
|
||||
"editorClosed" : {
|
||||
"${include}": [
|
||||
"${EditorTelemetryDescriptor}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('editorClosed', event.editor.getTelemetryDescriptor());
|
||||
}
|
||||
|
||||
|
||||
@@ -259,6 +259,12 @@ export abstract class TitleControl extends Themable implements ITitleAreaControl
|
||||
|
||||
// Log in telemetry
|
||||
if (this.telemetryService) {
|
||||
/* __GDPR__
|
||||
"workbenchActionExecuted" : {
|
||||
"id" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"from": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('workbenchActionExecuted', { id: e.action.id, from: 'editorPart' });
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -552,6 +552,12 @@ export class QuickOpenController extends Component implements IQuickOpenService
|
||||
const registry = Registry.as<IQuickOpenRegistry>(Extensions.Quickopen);
|
||||
const handlerDescriptor = registry.getQuickOpenHandler(prefix) || registry.getDefaultQuickOpenHandler();
|
||||
|
||||
/* __GDPR__
|
||||
"quickOpenWidgetShown" : {
|
||||
"mode" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"quickNavigate": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('quickOpenWidgetShown', { mode: handlerDescriptor.getId(), quickNavigate: quickNavigateConfiguration });
|
||||
|
||||
// Trigger onOpen
|
||||
|
||||
@@ -293,6 +293,12 @@ class StatusBarEntryItem implements IStatusbarItem {
|
||||
const action = this.instantiationService.createInstance(builtInActionDescriptor.syncDescriptor);
|
||||
|
||||
if (action.enabled) {
|
||||
/* __GDPR__
|
||||
"workbenchActionExecuted" : {
|
||||
"id" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"from": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('workbenchActionExecuted', { id: action.id, from: 'status bar' });
|
||||
(action.run() || TPromise.as(null)).done(() => {
|
||||
action.dispose();
|
||||
|
||||
@@ -170,6 +170,12 @@ function triggerAndDisposeAction(instantitationService: IInstantiationService, t
|
||||
|
||||
const from = args && args.from || 'keybinding';
|
||||
if (telemetryService) {
|
||||
/* __GDPR__
|
||||
"workbenchActionExecuted" : {
|
||||
"id" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"from": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
telemetryService.publicLog('workbenchActionExecuted', { id: actionInstance.id, from });
|
||||
}
|
||||
|
||||
|
||||
@@ -203,6 +203,11 @@ export abstract class EditorInput implements IEditorInput {
|
||||
* Subclasses should extend if they can contribute.
|
||||
*/
|
||||
public getTelemetryDescriptor(): object {
|
||||
/* __GDPR__FRAGMENT__
|
||||
"EditorTelemetryDescriptor" : {
|
||||
"typeId" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
return { typeId: this.getTypeId() };
|
||||
}
|
||||
|
||||
@@ -792,6 +797,19 @@ export const EditorOpenPositioning = {
|
||||
};
|
||||
|
||||
export interface IWorkbenchEditorConfiguration {
|
||||
/* __GDPR__FRAGMENT__
|
||||
"IWorkbenchEditorConfiguration" : {
|
||||
"showTabs" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"tabCloseButton": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"showIcons": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"enablePreview": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"enablePreviewFromQuickOpen": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"closeOnFileDelete": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"openPositioning": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"revealIfOpen": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"swipeToNavigate": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
workbench: {
|
||||
editor: {
|
||||
showTabs: boolean;
|
||||
|
||||
@@ -72,6 +72,11 @@ export class ResourceEditorInput extends EditorInput {
|
||||
const descriptor = super.getTelemetryDescriptor();
|
||||
descriptor['resource'] = telemetryURIDescriptor(this.resource);
|
||||
|
||||
/* __GDPR__FRAGMENT__
|
||||
"EditorTelemetryDescriptor" : {
|
||||
"resource": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
return descriptor;
|
||||
}
|
||||
|
||||
|
||||
@@ -254,6 +254,11 @@ export class UntitledEditorInput extends EditorInput implements IEncodingSupport
|
||||
const descriptor = super.getTelemetryDescriptor();
|
||||
descriptor['resource'] = telemetryURIDescriptor(this.getResource());
|
||||
|
||||
/* __GDPR__FRAGMENT__
|
||||
"EditorTelemetryDescriptor" : {
|
||||
"resource": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
return descriptor;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,12 @@ export class NodeCachedDataManager {
|
||||
|
||||
// log each failure separately
|
||||
if (err) {
|
||||
/* __GDPR__
|
||||
"cachedDataError" : {
|
||||
"errorCode" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"path": { "endPoint": "none", "classification": "CustomerContent", "purpose": "PerformanceAndHealth" }
|
||||
}
|
||||
*/
|
||||
this._telemetryService.publicLog('cachedDataError', {
|
||||
errorCode: err.errorCode,
|
||||
path: basename(err.path)
|
||||
@@ -40,6 +46,13 @@ export class NodeCachedDataManager {
|
||||
}
|
||||
|
||||
// log summary
|
||||
/* __GDPR__
|
||||
"cachedDataInfo" : {
|
||||
"didRequestCachedData" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"didRejectCachedData": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"didProduceCachedData": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }
|
||||
}
|
||||
*/
|
||||
this._telemetryService.publicLog('cachedDataInfo', {
|
||||
didRequestCachedData: Boolean(global.require.getConfig().nodeCachedDataDir),
|
||||
didRejectCachedData,
|
||||
|
||||
@@ -199,6 +199,25 @@ export class WorkbenchShell {
|
||||
|
||||
// Telemetry: workspace info
|
||||
const { filesToOpen, filesToCreate, filesToDiff } = this.configuration;
|
||||
/* __GDPR__
|
||||
"workspaceLoad" : {
|
||||
"userAgent" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"windowSize": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"emptyWorkbench": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"workbench.filesToOpen": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"workbench.filesToCreate": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"workbench.filesToDiff": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"customKeybindingsCount": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"theme": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"language": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "BusinessInsight" },
|
||||
"experiments": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "BusinessInsight" },
|
||||
"pinnedViewlets": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"restoredViewlet": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"restoredEditors": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"pinnedViewlets": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"startupKind": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('workspaceLoad', {
|
||||
userAgent: navigator.userAgent,
|
||||
windowSize: { innerHeight: window.innerHeight, innerWidth: window.innerWidth, outerHeight: window.outerHeight, outerWidth: window.outerWidth },
|
||||
@@ -221,6 +240,13 @@ export class WorkbenchShell {
|
||||
this.timerService.restoreEditorsDuration = info.restoreEditorsDuration;
|
||||
this.timerService.restoreViewletDuration = info.restoreViewletDuration;
|
||||
this.extensionService.onReady().done(() => {
|
||||
/* __GDPR__
|
||||
"startupTime" : {
|
||||
"${include}": [
|
||||
"${IStartupMetrics}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('startupTime', this.timerService.startupMetrics);
|
||||
});
|
||||
|
||||
@@ -288,6 +314,12 @@ export class WorkbenchShell {
|
||||
const idleMonitor = new IdleMonitor(2 * 60 * 1000); // 2 minutes
|
||||
|
||||
const listener = idleMonitor.onStatusChange(status =>
|
||||
/* __GDPR__
|
||||
"UserIdleStart" : {}
|
||||
*/
|
||||
/* __GDPR__
|
||||
"UserIdleStop" : {}
|
||||
*/
|
||||
this.telemetryService.publicLog(status === UserStatus.Active
|
||||
? TelemetryService.IDLE_STOP_EVENT_NAME
|
||||
: TelemetryService.IDLE_START_EVENT_NAME
|
||||
|
||||
@@ -145,6 +145,12 @@ export class ElectronWindow extends Themable {
|
||||
}
|
||||
|
||||
this.commandService.executeCommand(request.id, ...args).done(_ => {
|
||||
/* __GDPR__
|
||||
"commandExecuted" : {
|
||||
"id" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"from": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('commandExecuted', { id: request.id, from: request.from });
|
||||
}, err => {
|
||||
this.messageService.show(Severity.Error, err);
|
||||
|
||||
@@ -102,6 +102,12 @@ export class DebugActionsWidget extends Themable implements IWorkbenchContributi
|
||||
|
||||
// log in telemetry
|
||||
if (this.telemetryService) {
|
||||
/* __GDPR__
|
||||
"workbenchActionExecuted" : {
|
||||
"id" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"from": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('workbenchActionExecuted', { id: e.action.id, from: 'debugActionsWidget' });
|
||||
}
|
||||
}));
|
||||
@@ -141,6 +147,11 @@ export class DebugActionsWidget extends Themable implements IWorkbenchContributi
|
||||
private storePosition(): void {
|
||||
const position = parseFloat(this.$el.getComputedStyle().left) / window.innerWidth;
|
||||
this.storageService.store(DEBUG_ACTIONS_WIDGET_POSITION_KEY, position, StorageScope.WORKSPACE);
|
||||
/* __GDPR__
|
||||
"debug.actionswidgetposition" : {
|
||||
"position" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog(DEBUG_ACTIONS_WIDGET_POSITION_KEY, { position });
|
||||
}
|
||||
|
||||
|
||||
@@ -411,6 +411,9 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
||||
}
|
||||
|
||||
public addLaunchConfiguration(): TPromise<any> {
|
||||
/* __GDPR__
|
||||
"debug/addLaunchConfiguration" : {}
|
||||
*/
|
||||
this.telemetryService.publicLog('debug/addLaunchConfiguration');
|
||||
let configurationsArrayPosition: Position;
|
||||
const model = this.editor.getModel();
|
||||
|
||||
@@ -341,6 +341,7 @@ export class DebugService implements debug.IDebugService {
|
||||
// only log telemetry events from debug adapter if the adapter provided the telemetry key
|
||||
// and the user opted in telemetry
|
||||
if (session.customTelemetryService && this.telemetryService.isOptedIn) {
|
||||
// TODO Need to move off dynamic event names or properties. They cannot be registered upfront.
|
||||
session.customTelemetryService.publicLog(event.body.output, event.body.data);
|
||||
}
|
||||
|
||||
@@ -607,6 +608,9 @@ export class DebugService implements debug.IDebugService {
|
||||
}
|
||||
|
||||
public addReplExpression(name: string): TPromise<void> {
|
||||
/* __GDPR__
|
||||
"debugService/addReplExpression" : {}
|
||||
*/
|
||||
this.telemetryService.publicLog('debugService/addReplExpression');
|
||||
return this.model.addReplExpression(this.viewModel.focusedProcess, this.viewModel.focusedStackFrame, name)
|
||||
// Evaluate all watch expressions and fetch variables again since repl evaluation might have changed some.
|
||||
@@ -909,6 +913,17 @@ export class DebugService implements debug.IDebugService {
|
||||
}
|
||||
this.updateStateAndEmit(session.getId(), debug.State.Running);
|
||||
|
||||
/* __GDPR__
|
||||
"debugSessionStart" : {
|
||||
"type" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"breakpointCount": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"exceptionBreakpoints": { "endPoint": "none", "classification": "CustomerContent", "purpose": "FeatureInsight" },
|
||||
"watchExpressionsCount": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"extensionName": { "endPoint": "none", "classification": "PublicPersonalData", "purpose": "FeatureInsight" },
|
||||
"isBuiltin": { "endPoint": "none", "classification": "SystemMetaData", "purpose": ",FeatureInsight" },
|
||||
"launchJsonExists": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
return this.telemetryService.publicLog('debugSessionStart', {
|
||||
type: configuration.type,
|
||||
breakpointCount: this.model.getBreakpoints().length,
|
||||
@@ -925,6 +940,12 @@ export class DebugService implements debug.IDebugService {
|
||||
}
|
||||
|
||||
const errorMessage = error instanceof Error ? error.message : error;
|
||||
/* __GDPR__
|
||||
"debugMisconfiguration" : {
|
||||
"type" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"error": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('debugMisconfiguration', { type: configuration ? configuration.type : undefined, error: errorMessage });
|
||||
this.updateStateAndEmit(session.getId(), debug.State.Inactive);
|
||||
if (!session.disconnected) {
|
||||
@@ -1039,6 +1060,15 @@ export class DebugService implements debug.IDebugService {
|
||||
private onSessionEnd(session: RawDebugSession): void {
|
||||
const bpsExist = this.model.getBreakpoints().length > 0;
|
||||
const process = this.model.getProcesses().filter(p => p.getId() === session.getId()).pop();
|
||||
/* __GDPR__
|
||||
"debugSessionStop" : {
|
||||
"type" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"success": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"sessionLengthInSeconds": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"breakpointCount": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"watchExpressionsCount": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('debugSessionStop', {
|
||||
type: process && process.configuration.type,
|
||||
success: session.emittedStopped || !bpsExist,
|
||||
|
||||
@@ -164,8 +164,18 @@ export class RawDebugSession extends V8Protocol implements debug.ISession {
|
||||
const errorMessage = errorResponse ? errorResponse.message : '';
|
||||
const telemetryMessage = error ? debug.formatPII(error.format, true, error.variables) : errorMessage;
|
||||
if (error && error.sendTelemetry) {
|
||||
/* __GDPR__
|
||||
"debugProtocolErrorResponse" : {
|
||||
"error" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('debugProtocolErrorResponse', { error: telemetryMessage });
|
||||
if (this.customTelemetryService) {
|
||||
/* __GDPR__
|
||||
"debugProtocolErrorResponse" : {
|
||||
"error" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.customTelemetryService.publicLog('debugProtocolErrorResponse', { error: telemetryMessage });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,6 +265,13 @@ export class ExtensionEditor extends BaseEditor {
|
||||
|
||||
this.transientDisposables = dispose(this.transientDisposables);
|
||||
|
||||
/* __GDPR__
|
||||
"extensionGallery:openExtension" : {
|
||||
"${include}": [
|
||||
"${GalleryExtensionTelemetryData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionGallery:openExtension', extension.telemetryData);
|
||||
|
||||
this.extensionReadme = new Cache(() => extension.getReadme());
|
||||
|
||||
@@ -114,6 +114,12 @@ export class ExtensionTipsService implements IExtensionTipsService {
|
||||
|
||||
const exeBased = distinct(this._exeBasedRecommendations);
|
||||
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:unfiltered" : {
|
||||
"fileBased" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"exeBased": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionRecommendations:unfiltered', { fileBased, exeBased });
|
||||
|
||||
return distinct([...fileBased, ...exeBased]);
|
||||
@@ -247,6 +253,12 @@ export class ExtensionTipsService implements IExtensionTipsService {
|
||||
this.choiceService.choose(Severity.Info, message, options, 2).done(choice => {
|
||||
switch (choice) {
|
||||
case 0:
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:popup" : {
|
||||
"userReaction" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionRecommendations:popup', { userReaction: 'show', extensionId: name });
|
||||
return recommendationsAction.run();
|
||||
case 1: this.importantRecommendationsIgnoreList.push(id);
|
||||
@@ -255,12 +267,30 @@ export class ExtensionTipsService implements IExtensionTipsService {
|
||||
JSON.stringify(this.importantRecommendationsIgnoreList),
|
||||
StorageScope.GLOBAL
|
||||
);
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:popup" : {
|
||||
"userReaction" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionRecommendations:popup', { userReaction: 'neverShowAgain', extensionId: name });
|
||||
return this.ignoreExtensionRecommendations();
|
||||
case 2:
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:popup" : {
|
||||
"userReaction" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionRecommendations:popup', { userReaction: 'close', extensionId: name });
|
||||
}
|
||||
}, () => {
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:popup" : {
|
||||
"userReaction" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionRecommendations:popup', { userReaction: 'cancelled', extensionId: name });
|
||||
});
|
||||
});
|
||||
@@ -305,15 +335,35 @@ export class ExtensionTipsService implements IExtensionTipsService {
|
||||
this.choiceService.choose(Severity.Info, message, options, 2).done(choice => {
|
||||
switch (choice) {
|
||||
case 0:
|
||||
this.telemetryService.publicLog('extensionWorkspaceRecommendations:popup', { userReaction: 'show' });
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:popup" : {
|
||||
"userReaction" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionWorkspaceRecommendations:popup', { userReaction: 'show' });
|
||||
return action.run();
|
||||
case 1:
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:popup" : {
|
||||
"userReaction" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionWorkspaceRecommendations:popup', { userReaction: 'neverShowAgain' });
|
||||
return this.storageService.store(storageKey, true, StorageScope.WORKSPACE);
|
||||
case 2:
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:popup" : {
|
||||
"userReaction" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionWorkspaceRecommendations:popup', { userReaction: 'close' });
|
||||
}
|
||||
}, () => {
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:popup" : {
|
||||
"userReaction" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionWorkspaceRecommendations:popup', { userReaction: 'cancelled' });
|
||||
});
|
||||
});
|
||||
|
||||
@@ -72,6 +72,19 @@ export class KeymapExtensions implements IWorkbenchContribution {
|
||||
newKeymap: newKeymap.identifier,
|
||||
oldKeymaps: oldKeymaps.map(k => k.identifier)
|
||||
};
|
||||
/* __GDPR__FRAGMENT__
|
||||
"KeyMapsData" : {
|
||||
"newKeymap" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"oldKeymaps": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
/* __GDPR__
|
||||
"disableOtherKeymapsConfirmation" : {
|
||||
"${include}": [
|
||||
"${KeyMapsData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('disableOtherKeymapsConfirmation', telemetryData);
|
||||
const message = localize('disableOtherKeymapsConfirmation', "Disable other keymaps ({0}) to avoid conflicts between keybindings?", oldKeymaps.map(k => `'${k.local.manifest.displayName}'`).join(', '));
|
||||
const options = [
|
||||
@@ -82,6 +95,14 @@ export class KeymapExtensions implements IWorkbenchContribution {
|
||||
.then(value => {
|
||||
const confirmed = value === 0;
|
||||
telemetryData['confirmed'] = confirmed;
|
||||
/* __GDPR__
|
||||
"disableOtherKeymaps" : {
|
||||
"confirmed" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"${include}": [
|
||||
"${keyMapsData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('disableOtherKeymaps', telemetryData);
|
||||
if (confirmed) {
|
||||
return TPromise.join(oldKeymaps.map(keymap => {
|
||||
@@ -153,11 +174,19 @@ export class BetterMergeDisabled implements IWorkbenchContribution {
|
||||
extensionService.onReady().then(() => {
|
||||
if (storageService.getBoolean(BetterMergeDisabledNowKey, StorageScope.GLOBAL, false)) {
|
||||
storageService.remove(BetterMergeDisabledNowKey, StorageScope.GLOBAL);
|
||||
/* __GDPR__
|
||||
"betterMergeDisabled" : {}
|
||||
*/
|
||||
telemetryService.publicLog('betterMergeDisabled');
|
||||
messageService.show(Severity.Info, {
|
||||
message: localize('betterMergeDisabled', "The Better Merge extension is now built-in, the installed extension was disabled and can be uninstalled."),
|
||||
actions: [
|
||||
new Action('uninstall', localize('uninstall', "Uninstall"), null, true, () => {
|
||||
/* __GDPR__
|
||||
"betterMergeUninstall" : {
|
||||
"outcome" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
telemetryService.publicLog('betterMergeUninstall', {
|
||||
outcome: 'uninstall',
|
||||
});
|
||||
@@ -167,6 +196,11 @@ export class BetterMergeDisabled implements IWorkbenchContribution {
|
||||
});
|
||||
}),
|
||||
new Action('later', localize('later', "Later"), null, true, () => {
|
||||
/* __GDPR__
|
||||
"betterMergeUninstall" : {
|
||||
"outcome" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
telemetryService.publicLog('betterMergeUninstall', {
|
||||
outcome: 'later',
|
||||
});
|
||||
|
||||
@@ -315,6 +315,11 @@ export class ExtensionsListView extends ViewsViewletPanel {
|
||||
.filter(name => local.every(ext => `${ext.publisher}.${ext.name}` !== name))
|
||||
.filter(name => name.toLowerCase().indexOf(value) > -1);
|
||||
|
||||
/* __GDPR__
|
||||
"extensionRecommendations:open" : {
|
||||
"count" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionRecommendations:open', { count: names.length });
|
||||
|
||||
if (!names.length) {
|
||||
@@ -334,6 +339,11 @@ export class ExtensionsListView extends ViewsViewletPanel {
|
||||
return this.tipsService.getWorkspaceRecommendations()
|
||||
.then(recommendations => {
|
||||
const names = recommendations.filter(name => name.toLowerCase().indexOf(value) > -1);
|
||||
/* __GDPR__
|
||||
"extensionWorkspaceRecommendations:open" : {
|
||||
"count" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionWorkspaceRecommendations:open', { count: names.length });
|
||||
|
||||
if (!names.length) {
|
||||
@@ -349,6 +359,11 @@ export class ExtensionsListView extends ViewsViewletPanel {
|
||||
const value = query.value.replace(/@recommended:keymaps/g, '').trim().toLowerCase();
|
||||
const names = this.tipsService.getKeymapRecommendations()
|
||||
.filter(name => name.toLowerCase().indexOf(value) > -1);
|
||||
/* __GDPR__
|
||||
"extensionKeymapRecommendations:open" : {
|
||||
"count" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionKeymapRecommendations:open', { count: names.length });
|
||||
|
||||
if (!names.length) {
|
||||
|
||||
@@ -418,6 +418,13 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
|
||||
}
|
||||
|
||||
open(extension: IExtension, sideByside: boolean = false): TPromise<any> {
|
||||
/* __GDPR__
|
||||
"extensionGallery:open" : {
|
||||
"${include}": [
|
||||
"${GalleryExtensionTelemetryData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('extensionGallery:open', extension.telemetryData);
|
||||
return this.editorService.openEditor(this.instantiationService.createInstance(ExtensionsInput, extension), null, sideByside);
|
||||
}
|
||||
@@ -527,6 +534,20 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
|
||||
}
|
||||
|
||||
return this.promptAndSetEnablement(extension, enable, workspace).then(reload => {
|
||||
/* __GDPR__
|
||||
"extension:enabled" : {
|
||||
"${include}": [
|
||||
"${GalleryExtensionTelemetryData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
/* __GDPR__
|
||||
"extension:disable" : {
|
||||
"${include}": [
|
||||
"${GalleryExtensionTelemetryData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog(enable ? 'extension:enable' : 'extension:disable', extension.telemetryData);
|
||||
});
|
||||
}
|
||||
@@ -794,6 +815,30 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
|
||||
const duration = new Date().getTime() - active.start.getTime();
|
||||
const eventName = toTelemetryEventName(active.operation);
|
||||
|
||||
/* __GDPR__
|
||||
"extensionGallery:install" : {
|
||||
"duration" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"${include}": [
|
||||
"${GalleryExtensionTelemetryData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
/* __GDPR__
|
||||
"extensionGallery:update" : {
|
||||
"duration" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"${include}": [
|
||||
"${GalleryExtensionTelemetryData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
/* __GDPR__
|
||||
"extensionGallery:uninstall" : {
|
||||
"duration" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"${include}": [
|
||||
"${GalleryExtensionTelemetryData}"
|
||||
]
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog(eventName, assign(data, { success: !errorcode, duration, errorcode }));
|
||||
}
|
||||
|
||||
|
||||
@@ -537,6 +537,12 @@ export class FileController extends DefaultController {
|
||||
|
||||
public openEditor(stat: FileStat, options: { preserveFocus: boolean; sideBySide: boolean; pinned: boolean; }): void {
|
||||
if (stat && !stat.isDirectory) {
|
||||
/* __GDPR__
|
||||
"workbenchActionExecuted" : {
|
||||
"id" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"from": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('workbenchActionExecuted', { id: 'workbench.files.openFile', from: 'explorer' });
|
||||
|
||||
this.editorService.openEditor({ resource: stat.resource, options }, options.sideBySide).done(null, errors.onUnexpectedError);
|
||||
|
||||
@@ -273,6 +273,12 @@ export class Controller extends DefaultController {
|
||||
|
||||
public openEditor(element: OpenEditor, options: { preserveFocus: boolean; pinned: boolean; sideBySide: boolean; }): void {
|
||||
if (element) {
|
||||
/* __GDPR__
|
||||
"workbenchActionExecuted" : {
|
||||
"id" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"from": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('workbenchActionExecuted', { id: 'workbench.files.openFile', from: 'openEditors' });
|
||||
let position = this.model.positionOfGroup(element.editorGroup);
|
||||
if (options.sideBySide && position !== Position.THREE) {
|
||||
|
||||
@@ -277,6 +277,11 @@ export class FileEditorInput extends EditorInput implements IFileEditorInput {
|
||||
const descriptor = super.getTelemetryDescriptor();
|
||||
descriptor['resource'] = telemetryURIDescriptor(this.getResource());
|
||||
|
||||
/* __GDPR__FRAGMENT__
|
||||
"EditorTelemetryDescriptor" : {
|
||||
"resource": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
return descriptor;
|
||||
}
|
||||
|
||||
|
||||
@@ -148,6 +148,11 @@ export class MarkersPanel extends Panel {
|
||||
public openFileAtElement(element: any, preserveFocus: boolean, sideByside: boolean, pinned: boolean): boolean {
|
||||
if (element instanceof Marker) {
|
||||
const marker: Marker = element;
|
||||
/* __GDPR__
|
||||
"problems.marker.opened" : {
|
||||
"source" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('problems.marker.opened', { source: marker.marker.source });
|
||||
this.editorService.openEditor({
|
||||
resource: marker.resource,
|
||||
|
||||
@@ -41,6 +41,9 @@ export class ToggleMarkersPanelAction extends TogglePanelAction {
|
||||
public run(): TPromise<any> {
|
||||
let promise = super.run();
|
||||
if (this.isPanelFocused()) {
|
||||
/* __GDPR__
|
||||
"problems.used" : {}
|
||||
*/
|
||||
this.telemetryService.publicLog('problems.used');
|
||||
}
|
||||
return promise;
|
||||
@@ -63,6 +66,9 @@ export class ToggleErrorsAndWarningsAction extends TogglePanelAction {
|
||||
public run(): TPromise<any> {
|
||||
let promise = super.run();
|
||||
if (this.isPanelFocused()) {
|
||||
/* __GDPR__
|
||||
"problems.used" : {}
|
||||
*/
|
||||
this.telemetryService.publicLog('problems.used');
|
||||
}
|
||||
return promise;
|
||||
@@ -77,6 +83,9 @@ export class CollapseAllAction extends TreeCollapseAction {
|
||||
}
|
||||
|
||||
public run(context?: any): TPromise<any> {
|
||||
/* __GDPR__
|
||||
"problems.collapseAll.used" : {}
|
||||
*/
|
||||
this.telemetryService.publicLog('problems.collapseAll.used');
|
||||
return super.run(context);
|
||||
}
|
||||
@@ -132,6 +141,13 @@ export class FilterInputBoxActionItem extends BaseActionItem {
|
||||
data['errors'] = this.markersPanel.markersModel.filterOptions.filterErrors;
|
||||
data['warnings'] = this.markersPanel.markersModel.filterOptions.filterWarnings;
|
||||
data['infos'] = this.markersPanel.markersModel.filterOptions.filterInfos;
|
||||
/* __GDPR__
|
||||
"problems.filter" : {
|
||||
"errors" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"warnings": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"infos": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('problems.filter', data);
|
||||
}
|
||||
|
||||
|
||||
@@ -521,6 +521,12 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor
|
||||
emptyFilters: this.getLatestEmptyFiltersForTelemetry()
|
||||
};
|
||||
this.latestEmptyFilters = [];
|
||||
// TODO need to move off dynamic properties as they cannot be statically registered
|
||||
/* __GDPR__
|
||||
"keybindings.filter" : {
|
||||
"emptyFilters" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('keybindings.filter', data);
|
||||
}
|
||||
}
|
||||
@@ -535,6 +541,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor
|
||||
}
|
||||
|
||||
private reportKeybindingAction(action: string, command: string, keybinding: ResolvedKeybinding | string): void {
|
||||
// TODO need to move off dynamic event names and properties as they cannot be registered statically
|
||||
this.telemetryService.publicLog(action, { command, keybinding: keybinding ? (typeof keybinding === 'string' ? keybinding : keybinding.getUserSettingsLabel()) : '' });
|
||||
}
|
||||
|
||||
|
||||
@@ -323,6 +323,12 @@ export class PreferencesEditor extends BaseEditor {
|
||||
emptyFilters: this.getLatestEmptyFiltersForTelemetry()
|
||||
};
|
||||
this.latestEmptyFilters = [];
|
||||
// TODO need to move off dynamic properties as they cannot be statically be registered
|
||||
/* __GDPR__
|
||||
"defaultSettings.filter" : {
|
||||
"emptyFilters" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
this.telemetryService.publicLog('defaultSettings.filter', data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +93,12 @@ export class WalkThroughInput extends EditorInput {
|
||||
const descriptor = super.getTelemetryDescriptor();
|
||||
descriptor['target'] = this.getTelemetryFrom();
|
||||
descriptor['resource'] = telemetryURIDescriptor(this.options.resource);
|
||||
/* __GDPR__FRAGMENT__
|
||||
"EditorTelemetryDescriptor" : {
|
||||
"target" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" },
|
||||
"resource": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||
}
|
||||
*/
|
||||
return descriptor;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,25 @@ export interface IMemoryInfo {
|
||||
sharedBytes: number;
|
||||
}
|
||||
|
||||
/* __GDPR__FRAGMENT__
|
||||
"IStartupMetrics" : {
|
||||
"version" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"ellapsed" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"timers" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"timers2" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"platform" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"release" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"arch" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"totalmem" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"meminfo" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"cpus" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"initialStartup" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"hasAccessibilitySupport" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"isVMLikelyhood" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"emptyWorkbench" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
|
||||
"loadavg" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }
|
||||
}
|
||||
*/
|
||||
export interface IStartupMetrics {
|
||||
version: number;
|
||||
ellapsed: number;
|
||||
|
||||
Reference in New Issue
Block a user