WebSocket Monitoring Tool


WebSocket - An Overview

WebSocket is a communication protocol that enables full-duplex, persistent connections between a client and a server. Unlike traditional HTTP requests, WebSocket allows continuous two-way data exchange without the overhead of opening new connections for each interaction.Applications Manager monitors your WebSocket endpoints to detect service interruptions and abnormal response time spikes, and sends alerts so you can take timely corrective action.

Creating a new WebSocket Monitor

Prerequisites for monitoring WebSocket metrics: Click here

To add a new WebSocket monitor using the REST API: Click here

To create a new WebSocket monitor, follow the steps given below:

  1. Click on New Monitor link. Select WebSocket.
  2. Enter Display Name of the monitor.
  3. Enter the WebSocket URL i.e the websocket endpoint to be monitored.
  4. Enter Timeout in seconds, which is the amount of time (in seconds) that APM waits to establish a connection with the server hosting the WebSocket service. This also serves as the timeout duration for APM to listen and collect data from the service.
  5. Enter the credential details for user authentication by choosing any one of the following options:
    • Basic authentication: Authenticates the WebSocket endpoint using basic credentials such as username and password.
    • Credential Manager: Authenticates the WebSocket endpoint by selecting credentials from Credential Manager.
    • OAuth Token: Authenticates the WebSocket endpoint using an OAuth token, which is configured by selecting the OAuth provider from the dropdown.
    • Web Token: Authenticates the WebSocket endpoint using a Web Token, which is configured by selecting the Web Token from the dropdown.
  6. Configure the Custom HTTP(S) Headers required to establish a connection with the WebSocket endpoint. Use _sep_ to separate the header name and value. For specifying multiple headers, use the separator #. Example:User-Agent_sep_Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36#Accept-Charset_sep_utf-8
  7. Configure the payload data to be sent to the WebSocket server after the connection is established. Currently, only payloads of type String are supported.
  8. Specify the SSL/TLS protocol version supported by the certificate. This determines the encryption protocol used for secure communication.
    Supported values: Auto, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.(Applicable only for wss:// endpoints.)
  9. Disable the Skip Hostname Verification field if you wish to receive an alert in case of a mismatch in certificate name and domain name. If enabled, the certificate monitoring will take place even if the certificate name and domain name mismatches.(Applicable only for wss:// endpoints.)
  10. Enable Trust the SSL/TLS Server Certificate to blindly trust the SSL/TLS certificate's CA and establish a connection. Otherwise, the CA will be validated against the Java truststore. If the server certificate is not from a trusted CA, an alert will be raised.(Applicable only for wss:// endpoints.)
  11. Enable the Add content check for response checkbox if you wish to perform content check in the WebSocket response. Once enabled, perform the following steps:
      • Specify the contents that should contain and/or should not contain while performing the check in the WebSocket response.
      • should contain - If the specified content is not present in the response, then an alert will be generated.
      • should not contain - If the specified content is present in the response, then an alert will be generated.
    • Enable the Do case sensitive keyword search checkbox if you wish to perform a content check for case-sensitive character strings.
    • Enable the Regular Expression checkbox if you wish to perform a content check based on regular expressions. (Refer Regex Guide for more info)
  12. Note:
    • Make sure that the content you try to match is present in the API response.
    • The content search is case-sensitive. If you provide two or more words, the content match is performed for the words separately. Space character will be acting as the delimiter.
    • For example, if you specify the content as 'applications manager', the match is found for 'applications' and 'manager' separately. If you need the content match to be performed for the complete text, specify the two words in quotes, like 'applications manager'.
  13. Specify the polling interval for which the status of the monitor should be updated (in minutes).
  14. Make sure the proxy settings configured in Applications Manager matches with the proxy settings in the browser. Bypassing the local addresses and subnet mask are required based on the API being monitored.
  15. Click Test Credentials button, to make sure the WebSocket service is accessible from the Applications Manager installed machine.
  16. Choose the Monitor Group from the combo box with which you want to associate WebSocket Monitor (optional). You can choose multiple groups to associate your monitor.
  17. Click Add Monitor(s). This discovers the WebSocket service from the network and starts monitoring.

Monitored Parameters

Go to the Monitors Category View by clicking the Monitors tab. Click on WebSocket Monitor under the Web Server/Services table. Displayed is the WebSocket monitor's bulk configuration view distributed into three tabs:

  • Availability tab gives the Availability history for the past 24 hours or 30 days.
  • Performance tab gives the Health Status and events for the past 24 hours or 30 days.
  • List view enables you to perform bulk admin configurations.

On clicking a monitor from the list, you'll be taken to the WebSocket Monitor dashboard, where you can view the list of monitored webpage URLs and their current status. Following are the list of metrics that are monitored in WebSocket monitor:

Performance Overview

Parameter Description
PERFORMANCE OVERVIEW
ResponseTime Captures the total response time taken from initiating the WebSocket connection to receiving the final monitored response.
ConnectionTime Measures the time taken to establish a TCP connection with the WebSocket server (applicable for both ws:// and wss://).
SSLHandShakeTime Measures the time taken to complete the SSL/TLS handshake process (only applicable for wss:// endpoints).
WebSocketHandshakeTime Measures the duration of the WebSocket handshake—i.e., the time taken to upgrade from HTTP(S) to a WebSocket connection after establishing the initial connection.

Thank you for your feedback!

Was this content helpful?

We are sorry. Help us improve this page.

How can we improve this page?
Do you need assistance with this topic?
By clicking "Submit", you agree to processing of personal data according to the Privacy Policy.