/// <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()); }
/// <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()); }
/// <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()); }
/// <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()); }