Java 使用Spring公开有关当前Websocket连接的指标

Java 使用Spring公开有关当前Websocket连接的指标,java,spring,spring-boot,metrics,spring-websocket,Java,Spring,Spring Boot,Metrics,Spring Websocket,对于我的仪表板应用程序,我希望使用内部Spring指标监控基于Spring引导的应用程序。因此,我使用了spring boot actuator依赖项,它公开了许多内部指标。有很多基于HTTP的指标和Tomcat指标,比如当前会话、状态X的HTTP调用量等等。我找不到任何关于我的Websocket连接的信息 是否有任何内置的开箱即用的度量公开工具用于使用Spring的当前WebSocket,或者我是否必须创建自己的度量(例如,使用Prometheus在Grafana中显示数据)例如,必须手动注册

对于我的仪表板应用程序,我希望使用内部Spring指标监控基于Spring引导的应用程序。因此,我使用了
spring boot actuator
依赖项,它公开了许多内部指标。有很多基于HTTP的指标和Tomcat指标,比如当前会话、状态X的HTTP调用量等等。我找不到任何关于我的Websocket连接的信息

是否有任何内置的开箱即用的度量公开工具用于使用Spring的当前WebSocket,或者我是否必须创建自己的度量(例如,使用Prometheus在Grafana中显示数据)例如,必须手动注册一个计数器,当我收到
SessionConnectEvent
SessionConnectEvent
时,计数器会更新


提前谢谢

如果您使用的是STOMP over WebSocket,Spring会从
WebSocketMessageBrokerStats
中设置的关键基础结构组件中聚合有关内部状态和计数器的信息,默认情况下,这是每30秒记录一次的。它被创建为SpringBean,可以很容易地自动连接。以下是您将获得的信息示例:

目前没有执行器端点,但我已将其作为示例的一部分创建:

  • :公开WebSocket跟踪
  • :公开WebSocket消息映射
  • :公开WebSocketMessageBrokerStats
    • 找到了一个非常简单的方法


      如果您使用的是STOMP over WebSocket,那么在控制器类中,只需自动连接WebSocketMessageBrokerStats类并使用其方法即可

      @Autowired
      WebSocketMessageBrokerStats webSocketMessageBrokerStats;
      
      System.out.println("Session Stats info " +webSocketMessageBrokerStats.getWebSocketSessionStatsInfo());
      
      不需要创建任何单独的类

      阅读了解更多信息