Skip to content

Commit

Permalink
Fix throughput on abort (#4201)
Browse files Browse the repository at this point in the history
* Take account aborted request metrics (for throughput history)
  • Loading branch information
bbert committed Jun 6, 2023
1 parent f18da5a commit bd0081d
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
22 changes: 14 additions & 8 deletions src/streaming/net/HTTPLoader.js
Expand Up @@ -113,6 +113,17 @@ function HTTPLoader(cfg) {
throw new Error('config object is not correct or missing');
}

const addHttpRequestMetric = function(success) {
const responseUrl = httpRequest.response ? httpRequest.response.responseURL : null;
const responseStatus = httpRequest.response ? httpRequest.response.status : null;
const responseHeaders = httpRequest.response && httpRequest.response.getAllResponseHeaders ? httpRequest.response.getAllResponseHeaders() :
httpRequest.response ? httpRequest.response.responseHeaders : null;

const cmsd = responseHeaders && settings.get().streaming.cmsd && settings.get().streaming.cmsd.enabled ? cmsdModel.parseResponseHeaders(responseHeaders, request.mediaType) : null;

dashMetrics.addHttpRequest(request, responseUrl, responseStatus, responseHeaders, success ? traces : null, cmsd);
}

const handleLoaded = function (success) {
needFailureReport = false;

Expand All @@ -122,14 +133,7 @@ function HTTPLoader(cfg) {
request.fileLoaderType = fileLoaderType;

if (!request.checkExistenceOnly) {
const responseUrl = httpRequest.response ? httpRequest.response.responseURL : null;
const responseStatus = httpRequest.response ? httpRequest.response.status : null;
const responseHeaders = httpRequest.response && httpRequest.response.getAllResponseHeaders ? httpRequest.response.getAllResponseHeaders() :
httpRequest.response ? httpRequest.response.responseHeaders : null;

const cmsd = settings.get().streaming.cmsd && settings.get().streaming.cmsd.enabled ? cmsdModel.parseResponseHeaders(responseHeaders, request.mediaType) : null;

dashMetrics.addHttpRequest(request, responseUrl, responseStatus, responseHeaders, success ? traces : null, cmsd);
addHttpRequestMetric(success);

if (request.type === HTTPRequest.MPD_TYPE) {
dashMetrics.addManifestUpdate(request);
Expand Down Expand Up @@ -261,6 +265,8 @@ function HTTPLoader(cfg) {
};

const onabort = function () {
addHttpRequestMetric(true);

if (progressTimeout) {
clearTimeout(progressTimeout);
progressTimeout = null;
Expand Down
2 changes: 1 addition & 1 deletion src/streaming/rules/abr/lolp/LoLpRule.js
Expand Up @@ -145,7 +145,7 @@ function LoLPRule(config) {
scheduleController.setTimeToLoadDelay(0);

if (switchRequest.quality !== currentQuality) {
console.log('[TgcLearningRule][' + mediaType + '] requesting switch to index: ', switchRequest.quality, 'Average throughput', Math.round(throughput), 'kbps');
logger.debug('[TgcLearningRule][' + mediaType + '] requesting switch to index: ', switchRequest.quality, 'Average throughput', Math.round(throughput), 'kbps');
}

return switchRequest;
Expand Down

0 comments on commit bd0081d

Please sign in to comment.