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); }
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 })); }
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)); }
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); }
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); }
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); }
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); }
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)); }
protected override void OnThresholdEvent(PerfLogLine line, PerfLogCounterTrigger.SurpassedThresholdContext context) { }
protected override DiagnosticMeasurement AdditionalDiagnosticMeasurement(PerfLogCounterTrigger.SurpassedThresholdContext context) { return(DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, E2ETransportLatencyHighTrigger.gatingCounter.ObjectName, E2ETransportLatencyHighTrigger.gatingCounter.CounterName, E2ETransportLatencyHighTrigger.gatingCounter.InstanceName)); }
protected override DiagnosticMeasurement AdditionalDiagnosticMeasurement(PerfLogCounterTrigger.SurpassedThresholdContext context) { return(DiagnosticMeasurement.GetMeasure(context.Counter.MachineName, BootloaderOutstandingItemsTrigger.GatingCounter.ObjectName, BootloaderOutstandingItemsTrigger.GatingCounter.CounterName, BootloaderOutstandingItemsTrigger.GatingCounter.InstanceName)); }
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."); }
protected override string CollectAdditionalInformation(PerfLogCounterTrigger.SurpassedThresholdContext context) { return((ClassificationSLATrigger.LastFailureCounterData ?? string.Empty) + this.additionalInfo); }
protected abstract DiagnosticMeasurement AdditionalDiagnosticMeasurement(PerfLogCounterTrigger.SurpassedThresholdContext context);