Colibri Jitsi

How-to to setup Grafana dashboards to monitor Jitsi, my comprehensive tutorial for the beginner Who has read my earlier post about setting up 2 servers with jitsi and jibri (How-to to setup integrated Jitsi and Jibri for dummies, my comprehensive tutorial for the beginner), knows about my setup. Now I will show how I was able to setup a working dashboard to monitor the Jitsi Meet server based. Introduction To complement our Jitsi installation, we add a grafana dashboard to it so we can control usage, system load, traffic spikes etc. For the sake of simplicity, we run our grafana, telegraf and influxdb instances in the same jail as jitsi-meet, so this post builds on top of the post explaining how to set up jitsi-meet. Initial Set Up We connect to the jail and install the packages. Uses the COLIBRI XMPP protocol extension (to control the Jitsi Videobridge. It also uses XMPP Multi-User Chats (MUCs) to keep track of and control participants. Org.jitsi.videobridge.ENABLESTATISTICS=true org.jitsi.videobridge.STATISTICSTRANSPORT=muc,colibri for open network access you need to change like in below content first comment the line org.jitsi.videobridge.rest.jetty.port=8080 and add 2 line like below.

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

Colibri Jitsi

Who has read my earlier post about setting up 2 servers with jitsi and jibri (How-to to setup integrated Jitsi and Jibri for dummies, my comprehensive tutorial for the beginner), knows about my setup. Now I will show how I was able to setup a working dashboard to monitor the Jitsi Meet server based on the rest api provided by Jitsi. This will require installation of Grafana (dashboards), InfluxDB (performance database) and Telegraf (data collector).

In this example I decided to host my dashboards (all 3 services) on my Jibri-Server since that server is not used very often. In the examples I will connect based on IP-Adresses, you have to carefully substitute these with your own IPv4 adresses:
IPv4 of my Jitsi server: 116.203.231.172
IPv4 of my Grafana server: 116.203.20.99

We will briefly go through following steps for this installation:
Server “grafana” (116.203.20.99)
Step 1: Install database (InfluxDB) to host the data for dashboards
Step 2: Install Grafana to display jitsi stats in dashboards
Step 3: Install service (telegraf) to collect stats and write to database (InfluxDB)

Server: “jitsi” (116.203.231.172)
Step 4: Adapt Jitsi onfiguration to expose stats

At the end, I ended up with this dashboard showing stats during a call with 4 participants:


Colibri JitsiExampleThis dashboard contains ALL fields from the colibri rest-api response. Will require tweaking and tuning.

Server 'grafana'

Step 1: Install InfluxDB

If you run a firewall (i.e. ufw) on this server, open the port for influxdb and grafana webserver:

Step 2: Install Grafana to display stats dashboards

Step 3: Install & configure telegraf

nano /etc/telegraf/telegraf.conf

Enter following contents in telegraf.conf:

nano /etc/telegraf/telegraf.d/jitsi.conf

Enter following contents in jitsi.conf:

We enable start on boot and start telegraf now on server “jitsi”:

(Mind: We will not create a database as Telegraf will create our database if it does not find one)

Server: 'jitsi'

Step 4: Adapt Jitsi onfiguration to expose stats

nano /etc/jitsi/videobridge/config

Make sure to configure the jvb options:

Suite

JVB_OPTS='--apis=rest,xmpp'

and

nano /etc/jitsi/videobridge/sip-communicator.properties

Here we configure colibri statistics:

service jitsi-videobridge2 restart

Check output in the terminal on the jitsi server:

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

Response:{'inactive_endpoints':0,'inactive_conferences':0,'total_ice_succeeded_relayed':0,'total_loss_degraded_participant_seconds':0,'bit_rate_download':0,'muc_clients_connected':1,'total_participants':0,'total_packets_received':0,'rtt_aggregate':0.0,'packet_rate_upload':0,'p2p_conferences':0,'total_loss_limited_participant_seconds':0,'octo_send_bitrate':0,'total_dominant_speaker_changes':0,'receive_only_endpoints':0,'total_colibri_web_socket_messages_received':0,'octo_receive_bitrate':0,'loss_rate_upload':0.0,'version':'2.1.169-ga28eb88e','total_ice_succeeded':0,'total_colibri_web_socket_messages_sent':0,'total_bytes_sent_octo':0,'total_data_channel_messages_received':0,'loss_rate_download':0.0,'total_conference_seconds':0,'bit_rate_upload':0,'total_conferences_completed':0,'octo_conferences':0,'num_eps_no_msg_transport_after_delay':0,'endpoints_sending_video':0,'packet_rate_download':0,'muc_clients_configured':1,'conference_sizes':[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],'total_packets_sent_octo':0,'conferences_by_video_senders':[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],'videostreams':0,'jitter_aggregate':0.0,'total_ice_succeeded_tcp':0,'octo_endpoints':0,'current_timestamp':'2020-04-17 23:14:38.468','total_packets_dropped_octo':0,'conferences':0,'participants':0,'largest_conference':0,'total_packets_sent':0,'total_data_channel_messages_sent':0,'total_bytes_received_octo':0,'octo_send_packet_rate':0,'conferences_by_audio_senders':[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],'total_conferences_created':0,'total_ice_failed':0,'threads':37,'videochannels':0,'total_packets_received_octo':0,'graceful_shutdown':false,'octo_receive_packet_rate':0,'total_bytes_received':0,'rtp_loss':0.0,'total_loss_controlled_participant_seconds':0,'total_partially_failed_conferences':0,'endpoints_sending_audio':0,'total_bytes_sent':0,'mucs_configured':1,'total_failed_conferences':0,'mucs_joined':1}

With this response we see that the rest api responds and can be used for our purpose!

Colibri jitsi download

To make sure that the colibri rest endpoint can be accessed by telegraf:

ufw allow 8080/tcp

Configure dashboards in Grafana

Jitsi Colibri Port

Open Grafana in browser: http://116.203.20.99:3000 and prepare your admin account

Add datasource.
We will add an InfluxDB datasource and set it to be the default.

Jimenez
  • Name: InfluxDB
  • Default: On
  • HTTP URL: http://localhost:8086
  • HTTP Access: Server (default)
  • Database: jitsi

Build a Dashboard.

  • New Panel: Choose Visualisation
  • Type: Stat
  • Go to “Queries”
    –> Follow the settings in below screenshot to get a first panel display.

A collection of all fields from the jitsi rest api response is available in the json attached for convenience.

Happy tweaking and tuning…

Jitsi Colibri Config

Cheers, Igor

Jitsi Colibri-ws

Jitsi Monitor-1587310814489.json.txt (125.2 KB)