Skip to content

Commit

Permalink
Version 2.0.0 (#13)
Browse files Browse the repository at this point in the history
### Conceptual changes

 * The ClientMonitor is no longer responsible for WebSocket connections, signaling, and transports.
 * The ClientMonitor has become responsible for the following event emissions:
	- PEER_CONNECTION_OPENED, PEER_CONNECTION_CLOSED
	- MEDIA_TRACK_ADDED, MEDIA_TRACK_REMOVED
	- ICE_CONNECTION_STATE_CHANGED
 * Specific collectors can add additional call events. For example, mediasoup adds PRODUCER_PAUSED, PRODUCER_RESUMED, CONSUMER_PAUSED, CONSUMER_RESUMED events.
 * ClientMonitor calculate derived metrics such as sending, and receiving bitrates, total sent and received packets.
 

### Major Code changes

 * Removed Sender component and corresponding configuration from ClientMonitor.
 * Removed Transport component, as sending and transporting no longer fall under the responsibility of the ClientMonitor.
 * Storage StatsEntries `id` is renamed to `statsId`.
 * PeerConnectionEntry `collectorId` is renamed to `id`, and `collectorLabel` to `label`.
 * Removed `setUserId`, `setCallId`, `setClientId`, `setRoomId`, and `marker` from ClientMonitor, as this information should be used for context creation on the server side, which falls under the responsibility of signaling.
 * Removed `events` field from ClientMonitor, as events have become part of the ClientMonitor itself, and ClientMonitor now provides `on`, `off`, `once` interfaces for events.

### Functionality changes

 * Stats are removed based on visited ids in getStats. If a stat is no longer present in the getStats extracted result, it is removed from the Storage.

### Configuration changes

 * Sampler configuration is reduced.
 * Sender configuration is removed.
 * `statsExpirationTimeInMs` is removed.
 * `createCallEvents` is added.
  • Loading branch information
balazskreith authored Apr 15, 2023
1 parent dcff4c8 commit 41c6bcb
Show file tree
Hide file tree
Showing 60 changed files with 2,161 additions and 3,361 deletions.
27 changes: 21 additions & 6 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 14
node-version: 16
- name: Install
run: yarn

Expand All @@ -29,14 +29,29 @@ jobs:
run: |
echo "##[set-output name=branch;]$(echo ${GITHUB_REF##*/})"
echo "##[set-output name=version;]$(cat ./package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')"
echo "##[set-output name=short_sha;]$(git rev-parse --short HEAD)"
id: job_context

- name: Make snapshot version
if: steps.job_context.outputs.branch != 'master'
run: |
npm version ${{ steps.job_context.outputs.version }}-SNAPSHOT.${{ github.sha }} --git-tag-version false
npm version prerelease --preid=${{ steps.job_context.outputs.short_sha }} --git-tag-version false
working-directory: ${{env.working-directory}}

- uses: JS-DevTools/npm-publish@v1
with:
access: public
token: ${{ secrets.NPM_TOKEN }}
- name: Publish package to latest
if: steps.job_context.outputs.branch == 'master'
working-directory: ${{env.working-directory}}
run: |
npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
npm publish --ignore-scripts --access public
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Publish package to branch-tag
if: steps.job_context.outputs.branch != 'master'
working-directory: ${{env.working-directory}}
run: |
npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
npm publish --ignore-scripts --access public --tag $(echo "develop-${{ steps.job_context.outputs.version }}-rc" | sed 's/[.]//g')
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ node_modules/
dist/
lib/
keys/
draft.md
draft.md
14 changes: 14 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package-lock.json
node_modules/
dist/
lib/
keys/
draft.md
*.md

docs/
figures/
tests/
.vscode/
.github/
yarn.lock
39 changes: 39 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,42 @@
## 2.0.0

### Conceptual changes

* The ClientMonitor is no longer responsible for WebSocket connections, signaling, and transports.
* The ClientMonitor has become responsible for the following event emissions:
- PEER_CONNECTION_OPENED, PEER_CONNECTION_CLOSED
- MEDIA_TRACK_ADDED, MEDIA_TRACK_REMOVED
- ICE_CONNECTION_STATE_CHANGED
* Specific collectors can add additional call events. For example, mediasoup adds PRODUCER_PAUSED, PRODUCER_RESUMED, CONSUMER_PAUSED, CONSUMER_RESUMED events.
* ClientMonitor calculate derived metrics such as sending, and receiving bitrates, total sent and received packets.


### Major Code changes

* Removed Sender component and corresponding configuration from ClientMonitor.
* Removed Transport component, as sending and transporting no longer fall under the responsibility of the ClientMonitor.
* Storage StatsEntries `id` is renamed to `statsId`.
* PeerConnectionEntry `collectorId` is renamed to `id`, and `collectorLabel` to `label`.
* Removed `setUserId`, `setCallId`, `setClientId`, `setRoomId`, and `marker` from ClientMonitor, as this information should be used for context creation on the server side, which falls under the responsibility of signaling.
* Removed `events` field from ClientMonitor, as events have become part of the ClientMonitor itself, and ClientMonitor now provides `on`, `off`, `once` interfaces for events.

### Functionality changes

* Stats are removed based on visited ids in getStats. If a stat is no longer present in the getStats extracted result, it is removed from the Storage.

### Configuration changes

* Sampler configuration is reduced.
* Sender configuration is removed.
* `statsExpirationTimeInMs` is removed.
* `createCallEvents` is added.




## 1.3.2
* Change hash function to makeStamp and stop using sha256 as it turned out to be performance intensive

## 1.3.1
* Change visibility of MediasoupStatsCollector `addTransport` method to be public
* make imported schema version to be 2.2.0 instead of the last snapshot
Expand Down
Loading

0 comments on commit 41c6bcb

Please sign in to comment.