Class WebSocketMessageBrokerStats

java.lang.Object
org.springframework.web.socket.config.WebSocketMessageBrokerStats
All Implemented Interfaces:
SmartInitializingSingleton

public class WebSocketMessageBrokerStats extends Object implements SmartInitializingSingleton
A central class for aggregating information about internal state and counters from key infrastructure components of the setup that comes with @EnableWebSocketMessageBroker for Java config and <websocket:message-broker> for XML.

By default aggregated information is logged every 30 minutes at INFO level. The frequency of logging can be changed via setLoggingPeriod(long).

This class is declared as a Spring bean by the above configuration with the name "webSocketMessageBrokerStats" and can be easily exported to JMX, e.g. with the MBeanExporter.

Since:
4.1
Author:
Rossen Stoyanchev, Sam Brannen
  • Constructor Details

    • WebSocketMessageBrokerStats

      public WebSocketMessageBrokerStats()
  • Method Details

    • setSubProtocolWebSocketHandler

      public void setSubProtocolWebSocketHandler(SubProtocolWebSocketHandler webSocketHandler)
    • setStompBrokerRelay

      public void setStompBrokerRelay(StompBrokerRelayMessageHandler stompBrokerRelay)
    • setInboundChannelExecutor

      public void setInboundChannelExecutor(TaskExecutor inboundChannelExecutor)
    • setOutboundChannelExecutor

      public void setOutboundChannelExecutor(TaskExecutor outboundChannelExecutor)
    • setSockJsTaskScheduler

      public void setSockJsTaskScheduler(TaskScheduler sockJsTaskScheduler)
    • setLoggingPeriod

      public void setLoggingPeriod(long period)
      Set the frequency for logging information at INFO level in milliseconds. If set 0 or less than 0, the logging task is cancelled.

      By default this property is set to 30 minutes (30 * 60 * 1000).

    • getLoggingPeriod

      public long getLoggingPeriod()
      Return the configured logging period frequency in milliseconds.
    • afterSingletonsInstantiated

      public void afterSingletonsInstantiated()
      Description copied from interface: SmartInitializingSingleton
      Invoked right at the end of the singleton pre-instantiation phase, with a guarantee that all regular singleton beans have been created already. ListableBeanFactory.getBeansOfType(java.lang.Class<T>) calls within this method won't trigger accidental side effects during bootstrap.

      NOTE: This callback won't be triggered for singleton beans lazily initialized on demand after BeanFactory bootstrap, and not for any other bean scope either. Carefully use it for beans with the intended bootstrap semantics only.

      Specified by:
      afterSingletonsInstantiated in interface SmartInitializingSingleton
    • getWebSocketSessionStatsInfo

      public String getWebSocketSessionStatsInfo()
      Get stats about WebSocket sessions.
    • getStompSubProtocolStatsInfo

      public String getStompSubProtocolStatsInfo()
      Get stats about STOMP-related WebSocket message processing.
    • getStompBrokerRelayStatsInfo

      public String getStompBrokerRelayStatsInfo()
      Get stats about STOMP broker relay (when using a full-featured STOMP broker).
    • getClientInboundExecutorStatsInfo

      public String getClientInboundExecutorStatsInfo()
      Get stats about the executor processing incoming messages from WebSocket clients.
    • getClientOutboundExecutorStatsInfo

      public String getClientOutboundExecutorStatsInfo()
      Get stats about the executor processing outgoing messages to WebSocket clients.
    • getSockJsTaskSchedulerStatsInfo

      public String getSockJsTaskSchedulerStatsInfo()
      Get stats about the SockJS task scheduler.
    • toString

      public String toString()
      Overrides:
      toString in class Object