1.2.35 • Published 3 years ago

@apitech/jitsi-meet-metrics-collector v1.2.35

Weekly downloads
-
License
EUPL-1.2
Repository
github
Last release
3 years ago

What is jitsi-meet-metrics-collector ?

jitsi-meet-metrics-collector is a Node.js module that serves as a middleware for Express.js. It collects browser metrics and stores them in MongoDB database.

How does it work ?

once the user opens a web conference the jmmc_client.js file is uploaded and appended to the client script,the first post request send user's meta-data, the second sends metrics data (connectionquality,bandwidth...),and each 30 seconds after that it sends just the updated (changed)metrics.

sequenceDiagram
Browser->>jitsi-meet-metrics-collector: Get the JS file that sends metrics from /getClient
jitsi-meet-metrics-collector->>Browser: Send client JS file
loop Sending requests every X seconds (Default: 30s)
    Browser->>jitsi-meet-metrics-collector: Send metrics
    jitsi-meet-metrics-collector->>jitsi-meet-metrics-collector: Verify and Validate metrics
    jitsi-meet-metrics-collector->>MongoDB: Store metrics
    MongoDB->>jitsi-meet-metrics-collector: Send confirmation
    jitsi-meet-metrics-collector->>Browser: Send confirmation
        
end

example :

  • the fist request. the script sends the browser, the operating system and pid
  • the second request it sends metrics data containing for exemple cq (stands for connexion quality)
  • after that if the connexion quality change it sends metrics with the changed data if not it sends just the updated data without cq.

Using jitsi-meet-metrics-collector

Requirements

- Node > v16.14.2
- Jitsi > v1.0.5913

Express.js implementation

In order to use jitsi-meet-metrics-collector, it needs to be imported into Express.js as follows :

var express = require('express');
var app = express();
var mongoose = require("mongoose")
var jitsiMeetMetricsCollector = require("@apitech/jitsi-meet-metrics-collector");

var config = {
    authorizedRegions : ["REGION1", "REGION2"]
}

app.use('/jitsi-meet-metrics-collector',jitsiMeetMetricsCollector({
    confPattern: new RegExp('^(?=(?:[a-zA-Z0-9]*[a-zA-Z]))(?=(?:[a-zA-Z0-9]*[0-9]){3})[a-zA-Z0-9]{10,}$'),
    mongoose : mongoose,
    authorizedRegions: config.authorizedRegions,
    jmmcCollection: 'metrics-collector'
}));

module.exports = app;

lookup ./test/app/appTest.js for a real example

1.2.35

3 years ago

1.2.27

3 years ago

1.2.28

3 years ago

1.2.29

3 years ago

1.2.30

3 years ago

1.2.34

3 years ago

1.2.32

3 years ago

1.2.33

3 years ago

1.2.20

3 years ago

1.2.23

3 years ago

1.2.24

3 years ago

1.2.21

3 years ago

1.2.22

3 years ago

1.2.25

3 years ago

1.2.26

3 years ago

1.2.18

3 years ago

1.2.19

3 years ago

1.2.13

3 years ago

1.2.16

3 years ago

1.2.17

3 years ago

1.2.14

3 years ago

1.2.15

3 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.2.8

3 years ago

1.2.7

3 years ago

1.2.6

3 years ago

1.1.7

3 years ago

1.2.5

3 years ago

1.1.6

3 years ago

1.2.4

3 years ago

1.1.5

3 years ago

1.2.3

3 years ago

1.1.4

3 years ago

1.2.2

3 years ago

1.1.3

3 years ago

1.2.1

3 years ago

1.1.2

3 years ago

1.2.9

3 years ago

1.2.12

3 years ago

1.2.10

3 years ago

1.2.11

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago