Comments (16)
Ok intendi che chiunque abbia un'installazione autonoma di Jitsi possa aggiungere questa funzionalità in modo da poter essere integrato nel nostro progetto mostrando anche le metriche. La prendo!
from iorestoacasa.work.
come esporre le metriche:
step 1: abilitare il logging tramite API interna di JVB (tramite colibri)
from iorestoacasa.work.
step 2: abilitare le API interne di JVB tramite questa variabile d'ambiente del progetto Docker.
Bisogna andare ad individuare dove agisce quella variabile d'ambiente nella configurazione dei demoni
https://github.com/iorestoacasa-work/docker-jitsi-meet/blob/master/env.example#L211
JVB_ENABLE_APIS=rest,colibri
from iorestoacasa.work.
step 3: esporre la porta delle API private di JVB su localhost:8080 e verificare che visitando /colibri/stats si leggano le metriche
from iorestoacasa.work.
documentazione di Jitsi che riguarda queste API:
https://github.com/jitsi/jitsi-videobridge/blob/master/doc/statistics.md
https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md
https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest-colibri.md
from iorestoacasa.work.
step 4: trasformare l'endpoint JSON interno in un endpoint pubblico in formato exporter di prometheus
nel progetto Docker l'ho fatto tramite l'immagine sunbird/prometheus-jsonpath-exporter
che usa intelligentemente jsonpath, ma anche uno script da poche righe in Python andrà benone.
Punto di debolezza: quell'immagine trasforma tutte le metriche in "Gauge", mentre alcuni sono dei "Counter"
https://github.com/iorestoacasa-work/docker-jitsi-meet/blob/master/docker-compose.yml#L164
è configurato tramite questo file:
https://github.com/iorestoacasa-work/docker-jitsi-meet/blob/master/exporter_config.yml
from iorestoacasa.work.
https://it.wikibooks.org/wiki/Software_libero_a_scuola/Jitsi-installazione-su-vps
Usare questa guida come riferimento
Intanto ho seguito questa guida per l'installazione da 0 comprando un VPS Ubuntu 18.04 (piccolo) cui ho assegnato record A befair3.iorestoacasa.work. Ottima guida!
from iorestoacasa.work.
Grazie @tapionx per le preziose informazioni. Appunto di seguito la procedura che si potrà integrare nelle proprie guide e da cui si potrà produrre lo script:
Esportare le metriche Jitsi
Impostare la variabile JVB_OPTS
in /etc/jitsi/videobridge/config
:
JVB_OPTS="--apis=rest,colibri"
Aggiungere in /etc/jitsi/videobridge/sip-communicator.properties
le righe:
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri
org.jitsi.videobridge.STATISTICS_INTERVAL=5000
Riavviare il servizio e testare:
systemctl restart jitsi-videobridge.service
curl -v http://localhost:8080/colibri/stats
A questo punto abbiamo le statistiche su interfaccia privata.
Da qui in poi non è necessario per iorestoacasa.work ed è anzi sconsigliato da Jitsi, ma mi interessa a livello didattico... ;-)
Se volessimo esporle pubblicamente dovremmo aprire l'accesso dall'esterno alla porta 8080
ufw allow in 8080/tcp
# o iptables -A INPUT -p tcp --destination-port 8080 -j ACCEPT
e testare da un host remoto a fare la richiesta curl precedente
...proseguo con lo step successivo...
from iorestoacasa.work.
Fixed https://github.com/iorestoacasa-work/iorestoacasa_addmetrics
from iorestoacasa.work.
putroppo la modifica alla configurazione di videobridge JVB_OPTS="--apis=rest,colibri"
rompe Jitsi.
Quando si collegano due persone in una stanza, si ottiene il messaggio di errore "Unfortunately, something went wrong" e nel log di jicofo:
Jicofo 2020-03-15 18:11:48.738 SEVERE: [29] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Can not invite participant -- no bridge available.
from iorestoacasa.work.
Ho aperto una issue nel progetto jitsi-meet
jitsi/jitsi-meet#5185
from iorestoacasa.work.
vittoria!
https://github.com/iorestoacasa-work/iorestoacasa_addmetrics
from iorestoacasa.work.
Da https://github.com/jitsi/jitsi-videobridge/blob/45eeb611a8e7634732f73dca92ebe5024641a0a3/src/main/kotlin/org/jitsi/videobridge/stats/config/StatsManagerBundleActivatorConfig.kt#L97 vedo che stiamo usando la "legacy config" https://github.com/jitsi/jitsi-videobridge/blob/e01b2760543cbc0aafb4369ffff380dfaa4d0580/doc/muc.md#legacy-videobridge-configuration ma non mi è chiaro quale sia quella nuova. Del resto il pacchetto ufficiale fa lo stesso: https://github.com/jitsi/jitsi-videobridge/blob/9e64a82087cdbe68b60818a9980f7bb6e19cf9ec/debian/postinst#L104
from iorestoacasa.work.
Sto cercando di capire la presunta dipendenza da openjdk-8 (su Debian 10 c'è l'11). I pacchetti Debian sono:
dpkg -l | grep jitsi
ii jitsi-meet 1.0.4101-1 all WebRTC JavaScript video conferences
ii jitsi-meet-prosody 1.0.3729-1 all Prosody configuration for Jitsi Meet
ii jitsi-meet-web 1.0.3729-1 all WebRTC JavaScript video conferences
ii jitsi-meet-web-config 1.0.3729-1 all Configuration for web serving of Jitsi Meet
ii jitsi-videobridge 1126-1 amd64 WebRTC compatible Selective Forwarding Unit (SFU)
Quindi dovrebbe essere la versione del 2019-10-03: https://github.com/jitsi/jitsi-videobridge/tree/1126
Questa versione comprende jitsi/jitsi-videobridge@eb7075d#diff-5a883c2cde2404251309f64b97f939faL20 che rimuove qualche dipendenza da pacchetti Java ma non jitsi/jitsi-videobridge@7a7f5cf#diff-5a883c2cde2404251309f64b97f939fa .
Non dovrebbe cambiare niente ma lo segnalo solo perché prima di eventuali segnalazioni di bachi bisognerà probabilmente provare l'ultima versione.
from iorestoacasa.work.
Da jicofo.log:
JVB 2020-03-25 22:48:05.736 GRAVE: [27] org.jitsi.utils.concurrent.RecurringRunnableExecutor.log() The invocation of the method org.jitsi.videobridge.stats.StatsManager$StatisticsPeriodicRunnable.run() threw an exception.
java.lang.reflect.InaccessibleObjectException: Unable to make public long com.sun.management.internal.OperatingSystemImpl.getTotalPhysicalMemorySize() accessible: module jdk.management does not "opens com.sun.management.internal" to unnamed module @24b0f62d
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:340)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:280)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:198)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:192)
at org.jitsi.videobridge.stats.OsStatistics.getTotalMemory(OsStatistics.java:138)
at org.jitsi.videobridge.stats.VideobridgeStatistics.generate0(VideobridgeStatistics.java:703)
at org.jitsi.videobridge.stats.VideobridgeStatistics.generate(VideobridgeStatistics.java:450)
at org.jitsi.videobridge.stats.StatsManager$StatisticsPeriodicRunnable.doRun(StatsManager.java:321)
at org.jitsi.utils.concurrent.PeriodicRunnableWithObject.run(PeriodicRunnableWithObject.java:87)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor.run(RecurringRunnableExecutor.java:216)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor.runInThread(RecurringRunnableExecutor.java:292)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor.access$000(RecurringRunnableExecutor.java:36)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor$1.run(RecurringRunnableExecutor.java:328)
Already filed as jitsi/jitsi-videobridge#1127
from iorestoacasa.work.
A quanto pare il suggerimento per chi vuole usare JDK 11 è di usare jitsi-videobridge2 dall'archivio unstable di Jitsi, ma non sono riuscito a verificare che una chiamata funzionasse.
NON seguite il consiglio di aggiornare a jitsi-videobridge2 in un'installazione esistente https://community.jitsi.org/t/jvb-2-considered-stable/24314/7 , perché non si può tornare indietro con apt. (Serve ripristinare manualmente come minimo /etc/jitsi/videobridge/sip-communicator.properties
e /etc/jitsi/videobridge/config
.)
from iorestoacasa.work.
Related Issues (20)
- [NEW SERVER]
- [NEW SERVER]
- Carosello nella pagina principale non centrato
- Gli hashtag proposti per il progetto devono essere ben visibili
- [NEW SERVER]
- Definire ruoli di default per gli utenti
- Jitsi e MM: possibilità di bloccare riquadri utente HOT 5
- Rimozione server 🦄 HOT 1
- Cambio password su Grafana HOT 1
- [NEW SERVER] HOT 1
- [NEW SERVER] HOT 1
- [Feature Request] Aggiungere liberapay come gestore per le donazioni
- Aggiungere bottone Liberapay HOT 1
- Chat di organizzazione della festa di compleanno HOT 1
- Preparare il lancio del blog "belle storie"
- Prepararsi ognuno una breve riflessione dell'esperienza
- Inviare il messaggio iniziale in chat di SUPPORTO
- pulsante condivisione schermo assente a https://edu.meet.garr.it/
- Aggiornare pacchettizzazione Jitsi Meet HOT 1
- Aggiornare pacchettizzazione EduMeet
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iorestoacasa.work.