internal void RecordBlockingExtension(object extension) { if (extension == null) { return; } string extensionName; switch (extension) { case IAsyncCompletionSource source: extensionName = CompletionTelemetryHost.GetSourceName(source); break; case IAsyncCompletionItemManager itemManager: extensionName = CompletionTelemetryHost.GetItemManagerName(itemManager); break; case IAsyncCompletionCommitManager commitManager: extensionName = CompletionTelemetryHost.GetCommitManagerName(commitManager); break; default: extensionName = extension.GetType().ToString(); break; } if (!BlockingExtensionCounter.ContainsKey(extensionName)) { BlockingExtensionCounter[extensionName] = 0; } BlockingExtensionCounter[extensionName]++; }
internal void RecordCommitted(long duration, bool noChanges, IAsyncCompletionCommitManager manager) { CommitManagerName = CompletionTelemetryHost.GetCommitManagerName(manager); CommitDuration = duration; NoChanges = noChanges; }
internal void RecordObtainingSourceContext(IAsyncCompletionSource source, long elapsedMilliseconds) { var name = CompletionTelemetryHost.GetSourceName(source); if (Headless) { name = HeadlessCallNamePrefix + name; } ItemSourceGetContextDuration[name] = elapsedMilliseconds; }
internal void Save( IAsyncCompletionItemManager itemManager, ICompletionPresenterProvider presenterProvider, CompletionSessionState state) { ItemManagerName = CompletionTelemetryHost.GetItemManagerName(itemManager); PresenterProviderName = CompletionTelemetryHost.GetPresenterProviderName(presenterProvider); CompletionState = state; _telemetryHost.Add(this); }
internal void Save( IAsyncCompletionItemManager itemManager, ICompletionPresenterProvider presenterProvider, CompletionSessionState state) { ItemManagerName = CompletionTelemetryHost.GetItemManagerName(itemManager); PresenterProviderName = CompletionTelemetryHost.GetPresenterProviderName(presenterProvider); CompletionState = state; if (NoChanges && BlockingComputationDuration > 0) { UserWaitedForNoChanges = true; } _telemetryHost.Add(this); }
internal void RecordObtainingCommitManagerData(IAsyncCompletionCommitManager manager, long elapsedMilliseconds) { var name = CompletionTelemetryHost.GetCommitManagerName(manager); CommitManagerSetupDuration[name] = elapsedMilliseconds; }
public CompletionSessionTelemetry(CompletionTelemetryHost telemetryHost, bool headless = false) { _telemetryHost = telemetryHost; Headless = headless; }