1.2.35 • Published 1 year ago

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

Weekly downloads
-
License
EUPL-1.2
Repository
github
Last release
1 year 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

1 year ago

1.2.27

1 year ago

1.2.28

1 year ago

1.2.29

1 year ago

1.2.30

1 year ago

1.2.34

1 year ago

1.2.32

1 year ago

1.2.33

1 year ago

1.2.20

2 years ago

1.2.23

2 years ago

1.2.24

2 years ago

1.2.21

2 years ago

1.2.22

2 years ago

1.2.25

2 years ago

1.2.26

2 years ago

1.2.18

2 years ago

1.2.19

2 years ago

1.2.13

2 years ago

1.2.16

2 years ago

1.2.17

2 years ago

1.2.14

2 years ago

1.2.15

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.2.8

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.1.7

2 years ago

1.2.5

2 years ago

1.1.6

2 years ago

1.2.4

2 years ago

1.1.5

2 years ago

1.2.3

2 years ago

1.1.4

2 years ago

1.2.2

2 years ago

1.1.3

2 years ago

1.2.1

2 years ago

1.1.2

2 years ago

1.2.9

2 years ago

1.2.12

2 years ago

1.2.10

2 years ago

1.2.11

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago