Class TopicStats
java.lang.Object
com.loomcache.server.topic.TopicStats
Thread-safe statistics for a distributed topic.
Tracks:
- Publish count: Total number of messages published
- Subscribe count: Total number of subscriptions created
- Unsubscribe count: Total number of subscriptions removed
- Messages delivered: Total messages successfully delivered
- Messages failed: Total messages that failed delivery
- Average delivery latency: Measured in nanoseconds
Uses LongAdder for efficient concurrent updates with minimal contention.
All methods are thread-safe and non-blocking.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlongGet average delivery latency in nanoseconds.longGet total messages delivered.longGet total messages failed.longGet total publish count.longGet total subscribe count.longGet total unsubscribe count.voidrecordDelivery(long latencyNanos) Record successful message delivery with latency.voidRecord failed message delivery.voidIncrement publish count.voidIncrement subscribe count.voidIncrement unsubscribe count.voidreset()Reset all statistics to zero.
-
Constructor Details
-
TopicStats
public TopicStats()
-
-
Method Details
-
recordPublish
public void recordPublish()Increment publish count. -
recordSubscribe
public void recordSubscribe()Increment subscribe count. -
recordUnsubscribe
public void recordUnsubscribe()Increment unsubscribe count. -
recordDelivery
public void recordDelivery(long latencyNanos) Record successful message delivery with latency.- Parameters:
latencyNanos- The time taken to deliver the message in nanoseconds (must be non-negative)- Throws:
IllegalArgumentException- if latencyNanos is negative
-
recordFailure
public void recordFailure()Record failed message delivery. -
getPublishCount
public long getPublishCount()Get total publish count.- Returns:
- The number of times publish() was called
-
getSubscribeCount
public long getSubscribeCount()Get total subscribe count.- Returns:
- The total number of subscriptions created
-
getUnsubscribeCount
public long getUnsubscribeCount()Get total unsubscribe count.- Returns:
- The total number of subscriptions removed
-
getMessagesDelivered
public long getMessagesDelivered()Get total messages delivered.- Returns:
- The number of messages successfully delivered
-
getMessagesFailed
public long getMessagesFailed()Get total messages failed.- Returns:
- The number of messages that failed delivery
-
getAvgDeliveryLatencyNanos
public long getAvgDeliveryLatencyNanos()Get average delivery latency in nanoseconds.- Returns:
- The average delivery latency, or 0 if no deliveries have occurred
-
reset
public void reset()Reset all statistics to zero.
-