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

1 Like

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

1 Like

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).

1 Like

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

my jitsi snapshot

1 Like

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…