]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/shared/metrics/metrics-plugin.ts
Catch metrics error
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / shared / metrics / metrics-plugin.ts
index 2844828daf71688f49dc8172b9cecc56f3c94005..2aae3e90a51bfabb0e757bf1134384af4d40427d 100644 (file)
@@ -1,6 +1,7 @@
 import videojs from 'video.js'
 import { PlaybackMetricCreate } from '../../../../../../shared/models'
 import { MetricsPluginOptions, PlayerMode, PlayerNetworkInfo } from '../../types'
+import { logger } from '@root-helpers/logger'
 
 const Plugin = videojs.getPlugin('plugin')
 
@@ -99,11 +100,14 @@ class MetricsPlugin extends Plugin {
       const headers = new Headers({ 'Content-type': 'application/json; charset=UTF-8' })
 
       return fetch(this.metricsUrl, { method: 'POST', body: JSON.stringify(body), headers })
+        .catch(err => logger.error('Cannot send metrics to the server.', err))
     }, this.CONSTANTS.METRICS_INTERVAL)
   }
 
   private trackBytes () {
     this.player.on('p2pInfo', (_event, data: PlayerNetworkInfo) => {
+      if (!data) return
+
       this.downloadedBytesHTTP += data.http.downloaded - (this.lastPlayerNetworkInfo?.http.downloaded || 0)
       this.downloadedBytesP2P += data.p2p.downloaded - (this.lastPlayerNetworkInfo?.p2p.downloaded || 0)