How to enable colibri/stats in docker installations

About jitsi-videobridge/blob/master/doc/statistics
what changes needs to be done to have /colibri/stats path work in a docker installation?

In jvb/sip-communicator.properties i have added colibri
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri
org.jitsi.videobridge.STATISTICS_INTERVAL=1000

but when i open my server adddress/colibri/stats i get nginx 404Not found error and i don’t know how to configure nginx to enable this if this is something missing in nginx configuration…

Thanks

also enabled
JVB_ENABLE_APIS=rest,colibri
in .env file

anything else?

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

  • Trying 127.0.0.1…
  • TCP_NODELAY set
  • connect to 127.0.0.1 port 8080 failed: Connection refused
  • Failed to connect to 127.0.0.1 port 8080: Connection refused
  • Closing connection 0
    curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused

You need to enable the REST interface (the “colibri” options you added don’t do anything). See here:
https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md

Boris

Hi Boris,

I have changed colibri to xmpp in .env file
A comma separated list of APIs to enable when the JVB is started. The default is none.
See https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md for more information
JVB_ENABLE_APIS=rest,xmpp

i have read the explanations in rest.md file, but they are all about “jetty” and for normal installations. i am trying to enable it on docker installation which uses nginx; i think that makes the difference…

In anycase, i have tried to add following lines to /docker/current/.jitsi-meet-cfg/jvb/sip-communicator.properties files but did not help

org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=colibri
org.jitsi.videobridge.STATISTICS_INTERVAL=1000

org.jitsi.videobridge.rest.private.jetty.port=8080
org.jitsi.videobridge.rest.jetty.tls.port=443
org.jitsi.videobridge.TCP_HARVESTER_PORT=443
org.jitsi.videobridge.rest.jetty.port=443

I only want to access mydomain.com/colibri/stats , but still getting 404 Not Found

Still this issue unclear for me.
With the latest docker jitsi-meet version , which config files needs to be edited and which lines should be enabled and what kind of changes in nginx sould be made (if needed) ; i’d appreciate if anyone can give details about exact changes

in .env file of docker installation, which one is correct?

A comma separated list of APIs to enable when the JVB is started. The default is none.

See https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md for more information

JVB_ENABLE_APIS=rest,colibri

or

A comma separated list of APIs to enable when the JVB is started. The default is none.

See https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md for more information

JVB_ENABLE_APIS=rest,xmpp

and what else to be done? in config.js or in nginx ?

many thanks

I enabled JVB_ENABLE_APIS=rest,colibri in .env and restart docker-compose
then its working
curl 172.18.0.8:8080/colibri/stats
172.18.0.8 is jvb docker container ip

Thanks! when using docker container ip address of jvb container it works as you advised

but it doesnt seems to provide conference level details???

{"packet_rate_download":0,"total_tcp_connections":0,"conference_sizes":[1,1,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,"total_loss_degraded_participant_seconds":0,"bit_rate_download":0,"videostreams":1,"jitter_aggregate":0.0,"total_channels":0,"total_memory":8362,"current_timestamp":"2020-03-14 10:26:07.326","total_packets_received":0,"rtt_aggregate":0.0,"packet_rate_upload":0,"conferences":2,"participants":1,"total_loss_limited_participant_seconds":0,"largest_conference":1,"total_packets_sent":0,"total_data_channel_messages_sent":0,"total_bytes_received_octo":0,"total_no_transport_channels":0,"total_no_payload_channels":0,"used_memory":5061,"total_conferences_created":2,"threads":45,"total_colibri_web_socket_messages_received":0,"videochannels":1,"total_udp_connections":0,"loss_rate_upload":0.0,"total_packets_received_octo":0,"graceful_shutdown":false,"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,"total_bytes_received":0,"rtp_loss":0.0,"total_loss_controlled_participant_seconds":0,"total_partially_failed_conferences":0,"bit_rate_upload":0,"total_conferences_completed":0,"total_bytes_sent":0,"total_failed_conferences":0,"cpu_usage":0.02,"audiochannels":1}

you can expose it publicly by adding the following line to the docker-compose.yml file
# Video bridge
jvb:
#image: jitsi/jvb
build: ./jvb
ports:
- ‘{JVB_PORT}:{JVB_PORT}/udp’
- ‘{JVB_TCP_PORT}:{JVB_TCP_PORT}’
- ‘4096:4096/udp’
- '8080:8080’

now I can access it through the brow

1 Like

Posting to confirm that these two changes were all I needed:

  • edit “.env” to uncomment “JVB_ENABLE_APIS=rest,colibri”
  • edit “docker-compose.yml” to add “8080:8080” under services: jvb: ports:

After stopping containers, purging config/jitsi/jvb/ and restarting containers, stats were then visible in JSON format at http://DOCKER_HOST_IP:8080/colibri/stats

Can anyone suggest a good tool for viewing or monitoring those stats in a more user-friendly way? It’d be great at minimum to have a more user-friendly visual dashboard of current resource usage, active user and room counts, etc; bonus points for a monitoring tool that could send an email alert or similar under certain circumstances (i.e. more than X users or Y rooms in use at once).

use grafana for viewing statistics
dashboard link https://grafana.com/grafana/dashboards/11969

my jitsi snapshot

How to implement this on my current jitsi meet installation. Do you have a manual fo this

you can find manual here… https://grafana.com/grafana/dashboards/11969

That’s pretty cool! I just need a hint as I never used noeather grafana nor telegraf… I installed grafana (docker following this blog) and reach it, I don’t really understand where I should install telegraf. If I understand correctly telegraph will send data to influxdb: is it a service? It collects data via api so it should not be important where to put it… but I’m a little lost here…

install telegraf agent on jitsi machine where “http://ip:8080/colibri/stats” is available…
then add this on /etc/telegraf.conf (change ip )

[[inputs.http]]
name_override = “jitsi_stats”
urls = [
http://192.168.32.8:8080/colibri/stats
]

data_format = “json”

Thanks @Akhil_Jalagam, I opted to install the telegraf docker to avoid touching the std jitsy docker. I think I’m very close not but I see no data. Logs of telegram complained when I did not have username and password, then I added them and now it doesn’t complain anymore, so I guess that’s good… Dashboard datasource says: http://influxdb:8086. What kind of debug can I do? How can I know if data arrived at influxdb? Below I report my telegraf.conf.

Thanks in advance for any help

[global_tags]
[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""
  hostname = ""
  omit_hostname = false
[[outputs.influxdb]]
  urls = ["http://influxdb:8086"]
  username = "telegraf"
  password = "xxx"
[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
[[inputs.http]]
  name_override = "gjitsi_stats"
  urls = [
    "http://jvb:8080/colibri/stats"
  ]
  data_format = "json"

you need to update influxdb server ip to push metrics…
urls = [“http://influxdb:8086”]

No, that’s correct. That’s the name of the docker service inside docker-compose and I can ping it from telegraf instance. Is there a command to lanch on influxdb to see if data arrived?

  1. add datasource in grafana
  2. use grafana query tool for checking data…