Java (Java Agent, Installation, JVM, and Controller Installation)

cancel
Showing results for 
Search instead for 
Did you mean: 

Monitoring an application that uses mainly WebSocket communication

Wanderer

Monitoring an application that uses mainly WebSocket communication

Our application is a cloud platform that gives users access to embedded systems and IoT devices. Whereas we do have a small HTTP-based web API, the majority of communication and interaction happens via Web Socket communication on three different ports. On some of the ports the higher-level transmission protocol is JSON-RPC 2.0, other ports use a number of custom binary protocols.

We use the Netty 4.1 framework to implement WebSocket communication.

Little to no traffic happens over HTTP.

 

AppDynamics has been able to identify some basic business transactions, mainly centered around GWT, which is one of the mechanisms we use for front-end communication. However, for device communication AppD has not been able to auto-detect meaningful endpoints.

 

So, my detailed questions are:

  1. What is a good way to set-up monitoring for the WebSocket communication that has not been autodetected?
  2. How do we set up a health check that, e.g., sends a particular JSON-RPC message on the Web Socket and measures the time until we receive a response?
Monitoring an application that uses mainly WebSocket communication
2 REPLIES 2
Explorer

Re: Monitoring an application that uses mainly WebSocket communication

I have the same issue. Did you get any answer for this question?

Wanderer

Re: Monitoring an application that uses mainly WebSocket communication

No, we never got this resolved. Our conclusion was that AppD's out-of-the-box support for ws:/wss: communication is very limited. It probably would be possible to set it up, but it seems that a lot of manual configuration would be required.

Since our own software (which we were trying to monitor with AppD) itself happens to be a sensor data collection and analysis system (though primarily for geophysical sensors) we ended up implementing our own "self-monitoring" system by introducing synthetic sensors that were implemented via JMX, etc.