コード例 #1
0
        protected override bool ShouldTrigger(PerfLogCounterTrigger.SurpassedThresholdContext context)
        {
            bool result = false;
            bool flag   = base.ShouldTrigger(context);

            if (flag)
            {
                DiagnosticMeasurement measure = DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, OAuthAcsTimeoutTrigger.totalOAuthAcsTimeoutRequests.ObjectName, OAuthAcsTimeoutTrigger.totalOAuthAcsTimeoutRequests.CounterName, context.Counter.InstanceName);
                ValueStatistics       valueStatistics;
                if (context.AdditionalData.TryGetValue(measure, out valueStatistics))
                {
                    float?last = valueStatistics.Last;
                    float?num  = this.lastValueOfTotalOAuthAcsTimeoutRequests;
                    float?num2 = (last != null & num != null) ? new float?(last.GetValueOrDefault() - num.GetValueOrDefault()) : null;
                    float?num3 = num2;
                    if (num3.GetValueOrDefault() > 5f && num3 != null)
                    {
                        float?num4 = this.lastValueOfTotalOAuthAcsTimeoutRequests;
                        if (num4.GetValueOrDefault() != 0f || num4 == null)
                        {
                            result = true;
                        }
                    }
                    this.lastValueOfTotalOAuthAcsTimeoutRequests = valueStatistics.Last;
                }
            }
            return(result);
        }
コード例 #2
0
 protected override string CollectAdditionalInformation(PerfLogCounterTrigger.SurpassedThresholdContext context)
 {
     string[] array = context.Counter.InstanceName.Split(new char[]
     {
         ';'
     });
     return(string.Format("${0}|{1}|{2}|{3}$", new object[]
     {
         context.Counter.CounterName,
         array[0],
         array[1],
         (long)context.Value
     }));
 }
コード例 #3
0
        protected override string CollectAdditionalInformation(PerfLogCounterTrigger.SurpassedThresholdContext context)
        {
            StringBuilder         stringBuilder         = new StringBuilder();
            DiagnosticMeasurement diagnosticMeasurement = this.AdditionalDiagnosticMeasurement(context);
            ValueStatistics       valueStatistics;

            if (diagnosticMeasurement != null && context.AdditionalData.TryGetValue(diagnosticMeasurement, out valueStatistics))
            {
                string arg    = DiagnosticMeasurement.FormatMeasureName(diagnosticMeasurement.MachineName, diagnosticMeasurement.ObjectName, diagnosticMeasurement.CounterName, diagnosticMeasurement.InstanceName);
                string format = "Secondary performance counter '{0}' value is '{1}'";
                stringBuilder.AppendFormat(format, arg, valueStatistics.Last);
            }
            if (stringBuilder.Length != 0)
            {
                return(stringBuilder.ToString());
            }
            return(base.CollectAdditionalInformation(context));
        }
コード例 #4
0
 protected override bool ShouldTrigger(PerfLogCounterTrigger.SurpassedThresholdContext context)
 {
     if (base.ShouldTrigger(context))
     {
         int    num  = 0;
         float  num2 = 0f;
         string text = null;
         List <MailboxDatabase> list = null;
         this.allDatabasesOnLocalServer = this.GetAllDatabasesOnLocalServer();
         if (this.allDatabasesOnLocalServer != null)
         {
             if (!string.IsNullOrWhiteSpace(context.Counter.InstanceName))
             {
                 text = this.GetDatabaseNameFromInstanceName(context.Counter.InstanceName);
             }
             if (!string.IsNullOrEmpty(text))
             {
                 string databaseGroupFromName = this.GetDatabaseGroupFromName(text);
                 list = this.PopulateDatabasesOnSameDisk(databaseGroupFromName);
             }
             if (list != null && list.Count > 0)
             {
                 foreach (MailboxDatabase mailboxDatabase in list)
                 {
                     DiagnosticMeasurement measure = DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, DatabaseDiskReadLatencyTrigger.readsAverageLatency.ObjectName, DatabaseDiskReadLatencyTrigger.readsAverageLatency.CounterName, string.Format("Information Store - {0}/_Total", mailboxDatabase.Name));
                     ValueStatistics       valueStatistics;
                     if (context.AdditionalData.TryGetValue(measure, out valueStatistics))
                     {
                         num2 += valueStatistics.Mean.Value;
                         num++;
                     }
                 }
                 if (num > 0 && (double)(num2 / (float)num) <= 250.0)
                 {
                     return(false);
                 }
             }
         }
         return(true);
     }
     return(false);
 }
コード例 #5
0
        protected override bool ShouldTrigger(PerfLogCounterTrigger.SurpassedThresholdContext context)
        {
            bool flag  = false;
            bool flag2 = base.ShouldTrigger(context);

            if (flag2)
            {
                DiagnosticMeasurement measure  = DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, OAuthRequestFailureTrigger.totalOAuthRequests.ObjectName, OAuthRequestFailureTrigger.totalOAuthRequests.CounterName, context.Counter.InstanceName);
                DiagnosticMeasurement measure2 = DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, OAuthRequestFailureTrigger.totalOAuthFailedRequests.ObjectName, OAuthRequestFailureTrigger.totalOAuthFailedRequests.CounterName, context.Counter.InstanceName);
                ValueStatistics       valueStatistics;
                ValueStatistics       valueStatistics2;
                if (context.AdditionalData.TryGetValue(measure2, out valueStatistics) && context.AdditionalData.TryGetValue(measure, out valueStatistics2))
                {
                    float?last  = valueStatistics.Last;
                    float?num   = this.lastValueOftotalOAuthFailedRequests;
                    float?num2  = (last != null & num != null) ? new float?(last.GetValueOrDefault() - num.GetValueOrDefault()) : null;
                    float?last2 = valueStatistics2.Last;
                    float?num3  = this.lastValueOfTotalRequests;
                    float?num4  = (last2 != null & num3 != null) ? new float?(last2.GetValueOrDefault() - num3.GetValueOrDefault()) : null;
                    float?num5  = num2;
                    if (num5.GetValueOrDefault() > 100f && num5 != null)
                    {
                        float?num6 = num4;
                        if (num6.GetValueOrDefault() > 100f && num6 != null)
                        {
                            float?num7  = num2;
                            float?num8  = num4;
                            float?num9  = (num7 != null & num8 != null) ? new float?(num7.GetValueOrDefault() / num8.GetValueOrDefault()) : null;
                            float?num10 = (num9 != null) ? new float?(num9.GetValueOrDefault() * 100f) : null;
                            if (num10.GetValueOrDefault() > 20f && num10 != null)
                            {
                                flag = true;
                            }
                        }
                    }
                    this.lastValueOfTotalRequests            = valueStatistics2.Last;
                    this.lastValueOftotalOAuthFailedRequests = valueStatistics.Last;
                }
            }
            return(flag2 && flag);
        }
コード例 #6
0
        protected override bool ShouldTrigger(PerfLogCounterTrigger.SurpassedThresholdContext context)
        {
            bool flag  = false;
            bool flag2 = base.ShouldTrigger(context);

            if (flag2)
            {
                DiagnosticMeasurement diagnosticMeasurement = this.AdditionalDiagnosticMeasurement(context);
                ValueStatistics       valueStatistics;
                if (diagnosticMeasurement != null && context.AdditionalData.TryGetValue(diagnosticMeasurement, out valueStatistics))
                {
                    float? last = valueStatistics.Last;
                    double gatingCounterThreshold = base.GatingCounterThreshold;
                    if ((double)last.GetValueOrDefault() >= gatingCounterThreshold && last != null)
                    {
                        flag = true;
                    }
                }
            }
            return(flag2 && flag);
        }
コード例 #7
0
        protected override bool ShouldTrigger(PerfLogCounterTrigger.SurpassedThresholdContext context)
        {
            bool flag  = false;
            bool flag2 = base.ShouldTrigger(context);

            if (flag2)
            {
                DiagnosticMeasurement measure = DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, StoreRpcAverageLatencyTrigger.rpcOperationPerSecond.ObjectName, StoreRpcAverageLatencyTrigger.rpcOperationPerSecond.CounterName, context.Counter.InstanceName);
                ValueStatistics       valueStatistics;
                if (context.AdditionalData.TryGetValue(measure, out valueStatistics))
                {
                    double rpcOperationPerSecondThreshold = ((StoreRpcAverageLatencyTrigger.MbxConfiguration)base.Configuration).RpcOperationPerSecondThreshold;
                    float? last = valueStatistics.Last;
                    double num  = rpcOperationPerSecondThreshold;
                    if ((double)last.GetValueOrDefault() >= num && last != null)
                    {
                        flag = true;
                    }
                }
            }
            return(flag2 && flag);
        }
コード例 #8
0
        protected override bool ShouldTrigger(PerfLogCounterTrigger.SurpassedThresholdContext context)
        {
            bool flag  = false;
            bool flag2 = base.ShouldTrigger(context);

            if (flag2)
            {
                DiagnosticMeasurement measure = DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, this.requestsPerSecondMeasurement.ObjectName, this.requestsPerSecondMeasurement.CounterName, context.Counter.InstanceName);
                ValueStatistics       valueStatistics;
                if (context.AdditionalData.TryGetValue(measure, out valueStatistics))
                {
                    double requestsPerSecondThreshold = ((CASTriggerBase.CasConfiguration)base.Configuration).RequestsPerSecondThreshold;
                    float? last = valueStatistics.Last;
                    double num  = requestsPerSecondThreshold;
                    if ((double)last.GetValueOrDefault() >= num && last != null)
                    {
                        flag = true;
                    }
                    Log.LogInformationMessage("[CASTriggerBase.ShouldTrigger] Decision is {0} trigger, {1}/s {2} {3}/s for {4}", new object[]
                    {
                        flag ? "will" : "won't",
                        valueStatistics.Last,
                        flag ? ">=" : "<",
                        requestsPerSecondThreshold,
                        context.Counter.ToString()
                    });
                }
                else
                {
                    Log.LogWarningMessage("[CASTriggerBase.ShouldTrigger] Couldn't find requests per second measurement for {0} (currentMeasurement = {1})", new object[]
                    {
                        context.Counter.ToString(),
                        measure.ToString()
                    });
                }
            }
            return(flag2 && flag);
        }
 protected override DiagnosticMeasurement AdditionalDiagnosticMeasurement(PerfLogCounterTrigger.SurpassedThresholdContext context)
 {
     return(DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, MessagesCompletingCategorizationTrigger.gatingCounter.ObjectName, MessagesCompletingCategorizationTrigger.gatingCounter.CounterName, MessagesCompletingCategorizationTrigger.gatingCounter.InstanceName));
 }
コード例 #10
0
 protected override void OnThresholdEvent(PerfLogLine line, PerfLogCounterTrigger.SurpassedThresholdContext context)
 {
 }
コード例 #11
0
 protected override DiagnosticMeasurement AdditionalDiagnosticMeasurement(PerfLogCounterTrigger.SurpassedThresholdContext context)
 {
     return(DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, E2ETransportLatencyHighTrigger.gatingCounter.ObjectName, E2ETransportLatencyHighTrigger.gatingCounter.CounterName, E2ETransportLatencyHighTrigger.gatingCounter.InstanceName));
 }
コード例 #12
0
 protected override DiagnosticMeasurement AdditionalDiagnosticMeasurement(PerfLogCounterTrigger.SurpassedThresholdContext context)
 {
     return(DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, BootloaderOutstandingItemsTrigger.GatingCounter.ObjectName, BootloaderOutstandingItemsTrigger.GatingCounter.CounterName, BootloaderOutstandingItemsTrigger.GatingCounter.InstanceName));
 }
コード例 #13
0
 protected override string CollectAdditionalInformation(PerfLogCounterTrigger.SurpassedThresholdContext context)
 {
     return("The failure percentage is calculated from the 'MSExchangeInference Pipeline(training-<mdbGuid>)\\Number Of Succeeded Documents' counter and 'Number Of Failed Documents' counter over the past hour.");
 }
コード例 #14
0
 protected override string CollectAdditionalInformation(PerfLogCounterTrigger.SurpassedThresholdContext context)
 {
     return((ClassificationSLATrigger.LastFailureCounterData ?? string.Empty) + this.additionalInfo);
 }
コード例 #15
0
 protected abstract DiagnosticMeasurement AdditionalDiagnosticMeasurement(PerfLogCounterTrigger.SurpassedThresholdContext context);