diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs b/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
index d679488..6c6626f 100644
--- a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
+++ b/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
@@ -3,15 +3,20 @@ namespace ZB.MOM.WW.LmxProxy.Host.Domain
/// Subscription statistics for monitoring.
public class SubscriptionStats
{
- public SubscriptionStats(int totalClients, int totalTags, int activeSubscriptions)
+ public SubscriptionStats(int totalClients, int totalTags, int activeSubscriptions,
+ long totalDelivered = 0, long totalDropped = 0)
{
TotalClients = totalClients;
TotalTags = totalTags;
ActiveSubscriptions = activeSubscriptions;
+ TotalDelivered = totalDelivered;
+ TotalDropped = totalDropped;
}
public int TotalClients { get; }
public int TotalTags { get; }
public int ActiveSubscriptions { get; }
+ public long TotalDelivered { get; }
+ public long TotalDropped { get; }
}
}
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusModels.cs b/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusModels.cs
index 1a2a193..05b9db1 100644
--- a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusModels.cs
+++ b/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusModels.cs
@@ -28,6 +28,8 @@ namespace ZB.MOM.WW.LmxProxy.Host.Status
public int TotalClients { get; set; }
public int TotalTags { get; set; }
public int ActiveSubscriptions { get; set; }
+ public long TotalDelivered { get; set; }
+ public long TotalDropped { get; set; }
}
public class PerformanceStatus
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusReportService.cs b/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusReportService.cs
index d8c1ee3..10b3b25 100644
--- a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusReportService.cs
+++ b/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusReportService.cs
@@ -96,7 +96,9 @@ namespace ZB.MOM.WW.LmxProxy.Host.Status
{
TotalClients = subStats.TotalClients,
TotalTags = subStats.TotalTags,
- ActiveSubscriptions = subStats.ActiveSubscriptions
+ ActiveSubscriptions = subStats.ActiveSubscriptions,
+ TotalDelivered = subStats.TotalDelivered,
+ TotalDropped = subStats.TotalDropped
};
// Performance stats
@@ -216,11 +218,17 @@ namespace ZB.MOM.WW.LmxProxy.Host.Status
sb.AppendLine(" ");
// Subscriptions card
- sb.AppendLine("
");
+ var subCardCss = statusData.Subscriptions.TotalDropped > 0 ? "card-yellow" : "card-green";
+ sb.AppendLine($"
");
sb.AppendLine("
Subscriptions
");
sb.AppendLine($"
Clients: {statusData.Subscriptions.TotalClients}
");
sb.AppendLine($"
Tags: {statusData.Subscriptions.TotalTags}
");
sb.AppendLine($"
Active: {statusData.Subscriptions.ActiveSubscriptions}
");
+ sb.AppendLine($"
Delivered: {statusData.Subscriptions.TotalDelivered:N0}
");
+ if (statusData.Subscriptions.TotalDropped > 0)
+ {
+ sb.AppendLine($"
Dropped: {statusData.Subscriptions.TotalDropped:N0}
");
+ }
sb.AppendLine("
");
sb.AppendLine("
");
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Subscriptions/SubscriptionManager.cs b/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Subscriptions/SubscriptionManager.cs
index 05e709a..bbcfb40 100644
--- a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Subscriptions/SubscriptionManager.cs
+++ b/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Subscriptions/SubscriptionManager.cs
@@ -242,10 +242,20 @@ namespace ZB.MOM.WW.LmxProxy.Host.Subscriptions
///
Returns subscription statistics.
public SubscriptionStats GetStats()
{
+ long totalDelivered = 0;
+ long totalDropped = 0;
+ foreach (var kvp in _clientSubscriptions)
+ {
+ totalDelivered += kvp.Value.DeliveredCount;
+ totalDropped += kvp.Value.DroppedCount;
+ }
+
return new SubscriptionStats(
_clientSubscriptions.Count,
_tagSubscriptions.Count,
- _clientSubscriptions.Values.Sum(c => c.Addresses.Count));
+ _clientSubscriptions.Values.Sum(c => c.Addresses.Count),
+ totalDelivered,
+ totalDropped);
}
public void Dispose()