internal static LatencyDetectionContext StartLatencyDetection(Task task) { if (ProvisioningPerformanceHelper.enabled == 0 || task.CurrentTaskContext.InvocationInfo == null) { return(null); } if (string.Compare(task.CurrentTaskContext.InvocationInfo.CommandName, "New-Mailbox", StringComparison.OrdinalIgnoreCase) != 0 && string.Compare(task.CurrentTaskContext.InvocationInfo.CommandName, "New-SyncMailbox", StringComparison.OrdinalIgnoreCase) != 0 && string.Compare(task.CurrentTaskContext.InvocationInfo.CommandName, "New-GroupMailbox", StringComparison.OrdinalIgnoreCase) != 0) { return(null); } IPerformanceDataProvider[] providers = new IPerformanceDataProvider[] { PerformanceContext.Current, RpcDataProvider.Instance, TaskPerformanceData.InternalValidate, TaskPerformanceData.InternalStateReset, TaskPerformanceData.WindowsLiveIdProvisioningHandlerForNew, TaskPerformanceData.MailboxProvisioningHandler, TaskPerformanceData.AdminLogProvisioningHandler, TaskPerformanceData.OtherProvisioningHandlers, TaskPerformanceData.InternalProcessRecord, TaskPerformanceData.SaveInitial, TaskPerformanceData.ReadUpdated, TaskPerformanceData.SaveResult, TaskPerformanceData.ReadResult, TaskPerformanceData.WriteResult }; return(ProvisioningPerformanceHelper.latencyDetectionContextFactory.CreateContext(ProvisioningPerformanceHelper.applicationVersion, task.CurrentTaskContext.InvocationInfo.CommandName, providers)); }
internal static LatencyDetectionContext StartLatencyDetection(Task task) { IPerformanceDataProvider[] providers = new IPerformanceDataProvider[] { PerformanceContext.Current, RpcDataProvider.Instance, TaskPerformanceData.CmdletInvoked, TaskPerformanceData.BeginProcessingInvoked, TaskPerformanceData.ProcessRecordInvoked, TaskPerformanceData.EndProcessingInvoked, DomainServicesPerformanceData.DomainServicesConnection, DomainServicesPerformanceData.DomainServicesCall, LiveServicesPerformanceData.SPFConnection, LiveServicesPerformanceData.SPFCall, LiveServicesPerformanceData.CredentialServicesCall, LiveServicesPerformanceData.ProfileServicesCall, LiveServicesPerformanceData.NamespaceServicesCall }; return(ProvisioningPerformanceHelper.latencyDetectionContextFactory.CreateContext(ProvisioningPerformanceHelper.applicationVersion, task.CurrentTaskContext.InvocationInfo.CommandName, providers)); }
private void SetDataProviders(IPerformanceDataProvider[] dataProviders) { int num = (dataProviders != null) ? dataProviders.Length : 0; this.providers = new IPerformanceDataProvider[num]; this.taskData = new TaskPerformanceData[num]; for (int i = 0; i < num; i++) { IPerformanceDataProvider performanceDataProvider = dataProviders[i]; if (performanceDataProvider == null) { string message = string.Format(CultureInfo.InvariantCulture, "dataProviders[{0}] was null.", new object[] { i }); throw new ArgumentNullException("dataProviders", message); } this.providers[i] = performanceDataProvider; TaskPerformanceData taskPerformanceData = new TaskPerformanceData(); taskPerformanceData.Start = performanceDataProvider.TakeSnapshot(true); this.taskData[i] = taskPerformanceData; } }
public TaskPerformanceData[] StopAndFinalizeCollection() { if (this.timer != null) { this.timer.Stop(); } for (int i = 0; i < this.providers.Length; i++) { IPerformanceDataProvider performanceDataProvider = this.providers[i]; TaskPerformanceData taskPerformanceData = this.taskData[i]; taskPerformanceData.End = performanceDataProvider.TakeSnapshot(false); taskPerformanceData.Operations = performanceDataProvider.Operations; performanceDataProvider.ResetOperations(); if (performanceDataProvider.ThreadLocal) { taskPerformanceData.InvalidateIfAsynchronous(); } } if ((this.contextOptions & ContextOptions.DoNotCreateReport) != ContextOptions.DoNotCreateReport && LatencyDetectionContext.options.LatencyDetectionEnabled) { LatencyDetectionContext.reporter.Log(this); } return(this.taskData); }
internal LatencyDetectionException(LatencyDetectionContext trigger, IPerformanceDataProvider provider) : this(trigger.Location.Identity, trigger.StackTraceContext.ToString(), trigger.Elapsed, trigger.Latencies, provider.Name) { }
public ProviderAndLogStrings(IPerformanceDataProvider provider) { this.provider = provider; this.logCount = string.Format("{0}.Count", provider.Name); this.logLatency = string.Format("{0}.Latency", provider.Name); }
internal DataProviderLatencyDetectionException(LatencyDetectionContext trigger, IPerformanceDataProvider provider) : base(trigger, provider) { }