Health Check for Jitsi Video Bridge

I have to check health for video bridge so that if it is not working for some reason, I could take appropriate steps ( debugging/ restart instances)

Steps to reproduce:

  1. Enabled the Rest API in config
    JVB_OPTS="--apis=rest"
  2. Enabled the statistics in Sip communicator
    org.jitsi.videobridge.ENABLE_STATISTICS=true
  3. Then I called the APIs for health check
    curl http://localhost:8080/about/health

HTTP ERROR 404

Problem accessing /colibri/stats. Reason:

    Not Found


Powered by Jetty:// 9.4.15.v20190215

But stats are showing up for Colibri Stats
curl http://localhost:8080/colibri/stats

I am new to this platform, guide me how to check health of the Video bridge. Any help would be appreciated.

  • nano /etc/jitsi/videobridge/config

    • Make sure to configure the jvb options:
      JVB_OPTS="--apis=rest,xmpp"
  • nano /etc/jitsi/videobridge/sip-communicator.properties

    • Here we configure colibri statistics:

          org.jitsi.videobridge.ENABLE_STATISTICS=true
          org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri
          org.jitsi.videobridge.rest.private.jetty.host=0.0.0.0
      

curl http://127.0.0.1:8080/colibri/stats

My reference: How-to to setup Grafana dashboards to monitor Jitsi, my comprehensive tutorial for the beginner

@deepakangadi, I am able to see the stats but cannot see the health check( unhealthy/healthy).

curl http://localhost:8080/about/health

Please do this based on stress_level.

Getting stress_level -> 2.2E-4

What is the value range for stress level?

are you sure of pasting the error message correctly ? something does not look right here.

@gpatel-fr, Here is the full error message:

Error 404 Not Found

HTTP ERROR 404

Problem accessing /about/health. Reason:

    Not Found


Powered by Jetty:// 9.4.15.v20190215

Yes, I think I copied the old error message in the original answer.

@deepakangadi, I don’t think, only stress levels will be enough.
Last time, participants were able to join the meeting but unable to view each other. And CPU utilization were also moderate. So, we restarted the Videobridge instance and it started working. How can we detect such situation and handle it wisely?

Will this work on Separate Video bridge?
Because I want to mark the instance unhealthy if that instance out of Video Bridge pool is not working properly.

maybe the jvb.log file has more info ? possibly by forcing up the debug level in logging.properties.

Can you include your (censored) sip-communicator.properties, jvb.conf and jvb.log?

@bbaldino, @gpatel-fr
Here are the attached files that might help.
Sip communicator properties
sip-communicator.txt (1.1 KB)

JVB conf
jvb.txt (207 Bytes)

JVB config
config.txt (837 Bytes)

JVB logs
jvb.log (48.6 KB)

you have only one videobridge at the moment right ? if not could you have different configs ? because I don’t see in your config what could explain this problem.

And the jvb.log is useless to me. At INFO log level nothing is logged about the curl access. Maybe @bbaldino will read something in the rest but I can’t.
I’d set the log level to FINE in the logging.properties, but beware of not doing that in prod since it produces huge logs: stop the videobridge immediately after running the curl command and turn the debug level to INFO before restarting jvb. If you post the log at this level here, try to cut it to only show the part concerned by the health access.
I just tried it and it should produce 5 pages at most.

Note that for /about/health the response body is empty.

200 Response status code: Healthy
500 Response status code: Unhealthy

Refer: https://github.com/jitsi/jitsi-videobridge/blob/master/doc/health-checks.md

@deepakangadi,
For /about/health , I am getting 404.
Can you guide me how to implement it?

I am able to get the stats(/colibri/stats) but not health check(/about/health). Can I know whether the video bridge is healthy or not by colibri stats?
If yes, which properties should I consider?
If no, then how can I get the health check API working?

What are the outputs?

curl http://localhost:8080/stats
netstat -taunp | grep java

With the new setup /about/health, it is giving 200 OK.
How to test if /about/health is working for 500(internal server error) condition?

Check non 200 status

systemctl stop jitsi-videobridge2.service
curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/about/health
1 Like