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));
 }
Example #2
0
 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));
 }
Example #3
0
        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;
            }
        }
Example #4
0
 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);
 }
Example #5
0
 internal LatencyDetectionException(LatencyDetectionContext trigger, IPerformanceDataProvider provider) : this(trigger.Location.Identity, trigger.StackTraceContext.ToString(), trigger.Elapsed, trigger.Latencies, provider.Name)
 {
 }
Example #6
0
 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)
 {
 }