Exposing metrics about current Websocket connections with Spring

 ̄綄美尐妖づ 提交于 2020-03-22 11:05:49

问题


For my dashboarding application I want to monitor my Spring Boot based application with internal Spring metrics. Therefor I am using the spring-boot-actuator dependency which is exposing a lot of internal metrics. There are a lot of HTTP based metrics and Tomcat metrics like current sessions, amount of HTTP calls of status X and so on. I coulnd't find any information regarding my Websocket connections.

Is there any build-in out of the box metrics exposing tool for the current Websockets with Spring or do I have to create my own metrics (e.g. for showing the data in Grafana with Prometheus) and have to manually register for example a counter which is updated when I receive a SessionConnectEvent or SessionConnectEvent?

Thanks in advance!


回答1:


If you are using STOMP over WebSocket, Spring aggregates information about internal state and counters from key infrastructure components of the setup in WebSocketMessageBrokerStats, by default this is logged every 30 seconds. It is created as a Spring bean and can be easily autowired. This is an example of the information you'll get:

There are no actuator endpoints currently, but I've created them as part of my Spring WebSocket Chat sample:

  • Trace Endpoint: exposes WebSocket traces
  • Mappings Endpoint: exposes WebSocket message mappings
  • Stats Endpoint: exposes WebSocketMessageBrokerStats



回答2:


Found very easy way.

If you are using STOMP over WebSocket, in your controller class just autowire WebSocketMessageBrokerStats class and use it's methods.

@Autowired
WebSocketMessageBrokerStats webSocketMessageBrokerStats;

System.out.println("Session Stats info " +webSocketMessageBrokerStats.getWebSocketSessionStatsInfo());

No need of creating any separate class.

Read https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#websocket-stomp-stats for more information.



来源:https://stackoverflow.com/questions/49687540/exposing-metrics-about-current-websocket-connections-with-spring

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!