示例#1
0
 /// <summary>
 /// Gets throttled receiver count across receivers within pipeline and descendant.
 /// </summary>
 /// <param name="pipeline">Root pipeline diagnostics.</param>
 /// <param name="predicate">Predicate expression filtering receiver diagnostics.</param>
 /// <returns>Throttled receiver count.</returns>
 public static int GetThrottledReceiverCount(this PipelineDiagnostics pipeline, Func <PipelineDiagnostics.ReceiverDiagnostics, bool> predicate = null)
 {
     return(pipeline.GetAllReceiverDiagnostics().Where(r => r.ReceiverIsThrottled && (predicate == null ? true : predicate(r))).Count());
 }
示例#2
0
 /// <summary>
 /// Gets dropped message count across receivers within pipeline and descendant.
 /// </summary>
 /// <param name="pipeline">Root pipeline diagnostics.</param>
 /// <param name="predicate">Predicate expression filtering receiver diagnostics.</param>
 /// <returns>Dropped message count.</returns>
 public static int GetDroppedMessageCount(this PipelineDiagnostics pipeline, Func <PipelineDiagnostics.ReceiverDiagnostics, bool> predicate = null)
 {
     return(pipeline.GetAllReceiverDiagnostics().Where(r => predicate == null ? true : predicate(r)).Select(r => r.TotalMessageDroppedCount).Sum());
 }
示例#3
0
 /// <summary>
 /// Gets processed message count in last averaging time span across receivers within pipeline and descendant.
 /// </summary>
 /// <param name="pipeline">Root pipeline diagnostics.</param>
 /// <param name="predicate">Predicate expression filtering receiver diagnostics.</param>
 /// <returns>Processed message count.</returns>
 public static int GetProcessedMessageAveragePerTimeSpan(this PipelineDiagnostics pipeline, Func <PipelineDiagnostics.ReceiverDiagnostics, bool> predicate = null)
 {
     return(pipeline.GetAllReceiverDiagnostics().Where(r => predicate == null ? true : predicate(r)).Select(r => r.WindowMessageProcessedCount).Sum());
 }
示例#4
0
 /// <summary>
 /// Gets throttled receiver count within pipeline and descendant.
 /// </summary>
 /// <param name="pipeline">Root pipeline diagnostics.</param>
 /// <param name="predicate">Predicate expression filtering receiver diagnostics.</param>
 /// <returns>Average queued message count.</returns>
 public static double GetAverageQueuedMessageCount(this PipelineDiagnostics pipeline, Func <PipelineDiagnostics.ReceiverDiagnostics, bool> predicate = null)
 {
     return(pipeline.GetAllReceiverDiagnostics().Where(r => predicate == null ? true : predicate(r)).Select(r => r.AvgDeliveryQueueSize).Sum());
 }