Commit Graph

147 Commits

Author SHA1 Message Date
Paulo Lanzarin
327c2c4624
fix: run full RTC stats collection only when necessary (#21073)
In BBB 3.0, a change was made to collect full WebRTC stats continuously.
This method gathers stats from *all* peers and *all* senders and receivers
every 2 seconds. Originally, it was intended to run only when the user opened
the connection status dialog, providing in-depth info in the UI and making it
available for copying.

This new behavior is not ideal. Running full stats collection every 2 seconds
in meetings with 20+ peers/transceivers wastes client resources since the
collected data is unused 99% of the time.

This commit reverts to the pre-3.0 behavior (≤2.7), where full stats collection
(`startNetworkMonitoring`) runs only when the connection status modal is open.
As a bonus, it fixes the packet loss status transition log to use the packet
loss percentage, which is the actual trigger metric.
2024-09-13 09:15:35 -04:00
Paulo Lanzarin
3fbe4be441
refactor: adjust inline comment for packet loss metric usage
Adjust an inline comment in connection status' service about packet loss metric
usage.

Now it correctly states that the absolute counter SHOULD NOT be used for
alert triggers.
2024-08-29 15:53:03 -03:00
Paulo Lanzarin
dca9b87190
fix(connection-status): packet loss causes false positive critical alerts (#21049)
In 3.0, the packet loss metric used to trigger connection status alerts was
changed to the one generated by the `startMonitoringNetwork` method used by the
connection status modal. Since packet loss thresholds were not adjusted (0.5,
0.1, 0.2), a single lost packet causes the status alert to be permanently
stuck on "critical". This is explained by how different those metrics
are:
  - **Before (2.7):** A 5-probe wide calculation of inbound packet loss
  fraction based on `packetsLost` and `packetsReceived` metrics.
  - **Now (3.0):** An absolute counter of inbound lost packets.

This commit restores the previous packet loss metric used to trigger
connection status alerts, reverting to the original collection method via
`/utils/stats.js`. This resolves the issue, but further work is needed in
subsequent PRs:
  - Unify the collection done in `/utils/stats.js` with the
  `startMonitoringNetwork` method.
  - Incorporate the remote-inbound `fractionsLost` metric to account for packet
  loss on both legs of the network (in/out).
  - Update the packet loss metric displayed in the connection status modal to
 show a more meaningful value (e.g., packet loss percentage over a specific
  probe interval). An absolute counter of lost packets isn't useful for end
  users.
  - Update the alert log to use the fraction or percentage above
2024-08-28 16:55:57 -04:00
Gustavo Trott
af06562e02 Introduce flag currentlyInMeeting (replacing isOnline) 2024-08-28 11:08:30 -03:00
Ramón Souza
20dfac833d
fix connection status modal padding (#21009) 2024-08-23 11:04:45 -03:00
Tainan Felipe
ba32e21c0f
Add: Local history of rtt status changes (#20983)
* Change: Add local history of rtt status changes
2024-08-21 10:05:37 -03:00
Tainan Felipe
415d4ad5e1 Remove: rtt precision 2024-08-14 16:52:11 -03:00
Tainan Felipe
6789b69f62 Fix: error undefined in the cosole error 2024-08-14 16:37:37 -03:00
Tainan Felipe
78608dfb51 fix: decrease precision of the rtt 2024-08-14 11:54:46 -03:00
Tainan Felipe
4d6f4b3ded
Refactor: Make bundle using webpack (#20811)
* Refactor: Make bundle using webpack

* Fix: restore after install codes and a few settings

* Fix: build script folder permission

* Refactor: Remove support to async import on audio bridges

* Upgrade npm using nvm

* Avoid questions on npm ci execution

* Let npm ci install dev dependencies (as we need the build tools here)

* Fix: enconding

* Fix: old lock files

* Remove: bbb-config dependency to bbb-html5 service, bbb-html5 isn't a service anymore

* Fix: TS errors

* Fix: eslint

* Fix: chat styles

* npm install with "lockfileVersion": 3 (newer npm)

* build: allow nodejs 22

* node 22; drop meteor from CI and bbb-conf

* TEMP: use bbb-install without mongo but with node 22 and newer image

* build: relax nodejs condition to not trip 22.6

* build: ensure dir /usr/share/bigbluebutton/nginx exists

* init sites-available/bbb; drop disable-transparent-

* nginx complaining of missing file and ;

* TMP: print status of services

* WIP: tweak nginx location to debug

* Fix: webcam widgets alignments

* akka-apps -- update location of settings.yml

* build: add locales path for nginx

* docs and config changes for removal of meteor

* Fix: build encoding and locales enpoint folder path

* build: set wss url for media

* Add: Enable minimizer and modify to Terser

* Fix: TS errors

---------

Co-authored-by: Tiago Jacobs <tiago.jacobs@gmail.com>
Co-authored-by: Anton Georgiev <anto.georgiev@gmail.com>
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
2024-08-09 13:58:44 -04:00
João Victor
a660672ff8 Merge branch 'v3.0.x-release' into webcam-patch-0724 2024-08-01 16:21:19 -03:00
prlanzarin
24ae746a88 fix(connection-status): jitter causes false positive critical alerts
Jitter evaluation, as an alert trigger, was changed in 3.0 to get the internal
average jitter used in the conn-status component data (which is total jitter
delay divided by jitterbuffer emit events). This was done accidentally and that
metric is _very_ different from the one used in 2.7 (point-in-time jitter from
remote-inbound-rtp/inbound-rtp, highest on the interval, gathered on
/utils/stats.js).  The alert thresholds were preserved, which makes it overly
sensitive in regards to jitter (and thus causes it to be critical whenever the
user is in audio).

Remove jitter as a connection status alert trigger, which fixes the
false positive. The implementation on <= 2.7 is also not ideal - if
anything, it generates false negatives. That's why I'm removing jitter for
the time being since it's ill-suited (at least in the way it's used)
for what we want to achieve.
2024-07-30 18:59:49 +00:00
João Victor
8b4a2f39e0 fix(webcam): turn useGetStats hook into a service method to avoid function re-instantiation 2024-07-30 10:20:18 -03:00
João Victor
8e265de443 fix(html5): connection status picking wrong status 2024-07-24 13:36:01 -03:00
João Victor Nunes
b0498d29b2
fix(webcam): a couple of pagination fixes, improvements, et al. (#20720) 2024-07-19 08:52:55 -04:00
João Victor Nunes
f505f11f5a
fix(connection-status): stop RTT calculation on meeting end (#20708) 2024-07-17 11:37:04 -03:00
João Victor
054bab8a3e fix(connection-status): user report sorting 2024-07-10 12:25:05 -03:00
Tainan Felipe
284fed2137 Add: base url util for api 2024-07-08 14:14:30 -03:00
João Victor
41746ca67e Merge branch 'v3.0.x-release' into remove-meteor-stuff-0702 2024-07-05 12:24:31 -03:00
Tainan Felipe
0e7fe3c688
Change: improve client connection status (#20630) 2024-07-04 17:26:09 -03:00
João Victor
50d445f026 Remove Meteor backend 2024-07-02 14:58:58 -03:00
Ramón Souza
96085110a5
refactor: fix sonarcloud alerts (#20604)
* remove unused argument

* fix Do not use "Error" to declare a variable

* fix Do not use "Array" to declare a parameter

* fix React component names must start with an uppercase letter

* adjust error boundary prop type

* add default values for lock settings
2024-06-28 15:58:38 -04:00
João Victor
13425335df Fix imports 2024-06-17 08:54:03 -03:00
Tainan Felipe
01dcb8b267 Remove: connection status button withTracker 2024-06-11 10:43:43 -03:00
João Victor Nunes
06500be757
refactor(storage): replace Tracker.Dependency with observer hook (#20322)
* refactor(storage): replace Tracker.Dependency with observer hook

* fix(storage): set initial value

* refactor(storage): stop using Meteor's Session singleton
2024-06-06 10:50:03 -03:00
João Victor Nunes
33ebbde924
refactor: remove Meteor trackers (#20351)
* Replace Auth tracker with makeVar

* Replace connection status tracker with makeVar

* Replace notification bar tracker with makeVar
2024-06-04 14:09:48 -03:00
Tainan Felipe
3bc40df230
Add: useDeduplicatedSubscription hook (#20376)
* Add: useDeduplicatedSubscription hook

* Fix: TS error

* Add: components using useDeduplicatedSubscription

* Change: Move to useDeduplicatedSubscription

* Change: unsubscribe logic to own useEffect

* Change: remove file import over package

* Fix: TS errors

* Fix: private chat not loading

* Change: revert changes on queries

* Fix: eslint error

* Remove: html-webpack-plugin package

* Fix: external video

* Add: comment about the stringToHash function

* Fix: video player showing tools over presentation
2024-06-04 10:40:54 -03:00
Ramón Souza
7514066fc3
fix: Client can't load in certain cases (#20336)
* move settings

* remove meteor cache files
2024-05-29 09:26:11 -04:00
João Victor
fd253d6c2d refactor(settings): remove both Meteor's Tracker.Dependency and all uses in old format 2024-05-17 17:33:52 -03:00
João Victor
fb1947dc8f Remove console.log's 2024-05-03 15:11:30 -03:00
João Victor
7297778746 fix: tweak video-streams typings (Part 1)
- Tweak high-level components.
2024-05-01 16:48:12 -03:00
João Victor
1f8a95a3ff Remove video-streams subscription 2024-04-24 17:09:00 -03:00
João Victor
0bbe7da96d fix(connection status): restore session logs tab 2024-04-04 10:41:01 -03:00
Gustavo Trott
e8cd2db53a
Filter only wanted users for Connection Report 2024-04-03 18:54:12 -03:00
João Victor
41038fd8d3 fix: connection status button subscribing to data of all users 2024-04-03 10:01:08 -03:00
Gustavo Trott
97dc51e8c3 Simplify user connection status flow 2024-04-01 09:36:28 -03:00
Gustavo Trott
94a3275928 Add operationName for subscriptions when its missing 2024-03-28 12:09:37 -03:00
Anton Georgiev
ef300cf28e
chore: Fix typo (found by typos) (port) #19834
Co-authored-by: Stefan Weil <sw@weilnetz.de>
2024-03-18 09:58:53 -04:00
João Victor
5f7164203a fix(connection status): prevent mutation from running several times 2024-03-12 11:10:59 -03:00
André Castro
58a0efe708
Migrate auth and settings to graphQL (#19507) 2024-03-06 14:28:18 -03:00
Gustavo Trott
220e86b9f5 Refactor client to use new actions to update client status and remove old way 2024-03-05 19:33:31 -03:00
Gustavo Trott
b9e51e3163 Introduce networkRttInMs and applicationRttInMs 2024-01-25 12:27:53 -03:00
Ramón Souza
d9c9b00904 remove unused code 2023-12-06 10:33:36 -03:00
Ramón Souza
c9ae825c4b update status helper component 2023-12-06 09:12:25 -03:00
Ramón Souza
78fff583fd remove connection-status collection 2023-12-05 17:33:53 -03:00
Ramón Souza
7e8eb923de migrate connection status to use graphql 2023-12-05 11:18:45 -03:00
Gustavo Trott
3758dd89e2 Merge 2.7 into Develop 2023-07-31 11:24:25 -03:00
Ramón Souza
31add17d9c fix adjust settings button 2023-05-26 15:29:29 -03:00
GuiLeme
5eb29e0ab5 [issue-16954] - merge upstream/v2.7.x-release 2023-04-11 11:02:00 -03:00
GuiLeme
81ae4e9ca6 [issue-16954] - Adjusting modal priorities 2023-03-29 11:08:56 -03:00