mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Popups
synced 2024-11-30 18:34:40 +00:00
Remove duplicate events filtering
We had instrumentation for over 4 weeks and duplicate events rate was very low. We want to keep stats so we check the duplicate events rate but there is no need to filter those. Bug: T167365 Change-Id: I72585beb21e9db589e45eeace657ef25f432abc9
This commit is contained in:
parent
7e2c79ae0d
commit
426356e822
BIN
resources/dist/index.js
vendored
BIN
resources/dist/index.js
vendored
Binary file not shown.
BIN
resources/dist/index.js.map
vendored
BIN
resources/dist/index.js.map
vendored
Binary file not shown.
|
@ -28,6 +28,16 @@ function fnv1a32( string ) {
|
||||||
/* eslint-enable no-bitwise */
|
/* eslint-enable no-bitwise */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if event is an interaction event
|
||||||
|
*
|
||||||
|
* @param {Object} event Event
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
function isInteractionEvent( event ) {
|
||||||
|
return event.linkInteractionToken !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if token was already used
|
* Check if token was already used
|
||||||
*
|
*
|
||||||
|
@ -111,21 +121,22 @@ module.exports = function ( boundActions, eventLoggingTracker, statsvTracker ) {
|
||||||
if ( !event ) {
|
if ( !event ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( isDuplicateToken( tokenToSeenMap, event.linkInteractionToken ) ) {
|
|
||||||
statsvTracker( 'counter.PagePreviews.EventLogging.DuplicateToken', 1 );
|
// We log duplicates only for interaction events
|
||||||
shouldLog = false;
|
if ( isInteractionEvent( event ) ) {
|
||||||
}
|
if ( isDuplicateToken( tokenToSeenMap, event.linkInteractionToken ) ) {
|
||||||
if ( isDuplicateEvent( hashToSeenMap, event ) ) {
|
shouldLog = false;
|
||||||
statsvTracker( 'counter.PagePreviews.EventLogging.DuplicateEvent', 1 );
|
statsvTracker( 'counter.PagePreviews.EventLogging.DuplicateToken', 1 );
|
||||||
shouldLog = false;
|
}
|
||||||
|
if ( isDuplicateEvent( hashToSeenMap, event ) ) {
|
||||||
|
statsvTracker( 'counter.PagePreviews.EventLogging.DuplicateEvent', 1 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
event = $.extend( true, {}, eventLogging.baseData, event );
|
event = $.extend( true, {}, eventLogging.baseData, event );
|
||||||
|
|
||||||
if ( shouldLog ) {
|
if ( shouldLog ) {
|
||||||
eventLoggingTracker( 'event.Popups', event );
|
eventLoggingTracker( 'event.Popups', event );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dispatch the eventLogged action even if it was a duplicate so that the
|
// Dispatch the eventLogged action even if it was a duplicate so that the
|
||||||
// state tree can be cleared/updated.
|
// state tree can be cleared/updated.
|
||||||
boundActions.eventLogged( event );
|
boundActions.eventLogged( event );
|
||||||
|
|
|
@ -109,7 +109,6 @@ QUnit.test( 'it should handle duplicate events', function ( assert ) {
|
||||||
this.eventLoggingTracker.calledTwice,
|
this.eventLoggingTracker.calledTwice,
|
||||||
'It shouldn\'t log the event.'
|
'It shouldn\'t log the event.'
|
||||||
);
|
);
|
||||||
|
|
||||||
// ---
|
// ---
|
||||||
|
|
||||||
nextState = createState( {
|
nextState = createState( {
|
||||||
|
@ -165,7 +164,6 @@ QUnit.test( 'it should handle duplicate tokens', function ( assert ) {
|
||||||
],
|
],
|
||||||
'It should increment the duplicate token counter.'
|
'It should increment the duplicate token counter.'
|
||||||
);
|
);
|
||||||
|
|
||||||
assert.ok(
|
assert.ok(
|
||||||
this.eventLoggingTracker.calledOnce,
|
this.eventLoggingTracker.calledOnce,
|
||||||
'It shouldn\'t log the event with the duplicate token.'
|
'It shouldn\'t log the event with the duplicate token.'
|
||||||
|
@ -174,7 +172,8 @@ QUnit.test( 'it should handle duplicate tokens', function ( assert ) {
|
||||||
|
|
||||||
QUnit.test( 'it should handle undefined tokens', function ( assert ) {
|
QUnit.test( 'it should handle undefined tokens', function ( assert ) {
|
||||||
var state,
|
var state,
|
||||||
state2;
|
state2,
|
||||||
|
state3;
|
||||||
|
|
||||||
state = createState( undefined, {
|
state = createState( undefined, {
|
||||||
action: 'pageLoaded'
|
action: 'pageLoaded'
|
||||||
|
@ -184,15 +183,21 @@ QUnit.test( 'it should handle undefined tokens', function ( assert ) {
|
||||||
action: 'disabled'
|
action: 'disabled'
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
state3 = createState( undefined, {
|
||||||
|
action: 'disabled'
|
||||||
|
} );
|
||||||
|
|
||||||
this.changeListener( undefined, state );
|
this.changeListener( undefined, state );
|
||||||
this.changeListener( undefined, state2 );
|
this.changeListener( undefined, state2 );
|
||||||
|
this.changeListener( undefined, state3 );
|
||||||
|
|
||||||
assert.ok(
|
assert.ok(
|
||||||
this.statsvTracker.notCalled,
|
this.statsvTracker.notCalled,
|
||||||
'It shouldn\'t increment the duplicate token counter.'
|
'It shouldn\'t increment the duplicate token counter.'
|
||||||
);
|
);
|
||||||
|
|
||||||
assert.ok(
|
assert.ok(
|
||||||
this.eventLoggingTracker.calledTwice,
|
this.eventLoggingTracker.calledThrice,
|
||||||
'It should log the event twice.'
|
'It should log the event twice.'
|
||||||
);
|
);
|
||||||
} );
|
} );
|
||||||
|
|
Loading…
Reference in a new issue