Page MenuHomePhabricator

Move most Navigation Timing logic to backend
Closed, ResolvedPublic


Especially the isCompliant check I'd prefer to have in the backend so that there is less burden on the client (for an unlikely scenario), and also so that our raw throughput is not affected by it.

This also allows us to improve and change the compliancy check without having to roll it out for everyone at once (similar to how we are doing with the navtiming2 experiment right now).

From T190977: When we move the isCompliant() filter to the server, let's also improve its instrumentation to be more details. E.g. In addition to incrementing the nonCompliant counter, we could also log to navtiming's stderr an log message more details about the issue (eg. browser, version, property).


Related Gerrit Patches:
operations/puppet : productionNavigationTiming: Move logic to the server side
mediawiki/extensions/NavigationTiming : masterext.NavigationTiming: Remove isCompliant

Event Timeline

Krinkle created this task.Nov 27 2017, 6:31 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptNov 27 2017, 6:31 PM
Krinkle triaged this task as Medium priority.Jan 16 2018, 5:31 PM
Imarlier claimed this task.Jan 18 2018, 5:38 PM
Krinkle updated the task description. (Show Details)Apr 2 2018, 8:20 PM

Change 423959 had a related patch set uploaded (by Imarlier; owner: Imarlier):
[operations/puppet@production] NavigationTiming: Move logic to the server side

Change 424024 had a related patch set uploaded (by Imarlier; owner: Imarlier):
[mediawiki/extensions/NavigationTiming@master] ext.NavigationTiming: Remove isCompliant

Change 423959 merged by Elukey:
[operations/puppet@production] NavigationTiming: Move logic to the server side

Change 424024 merged by jenkins-bot:
[mediawiki/extensions/NavigationTiming@master] ext.NavigationTiming: Remove isCompliant

Server side is deployed, extension change is merged but figuring that it'll just be on the train next week.

isCompliant check has been moved to the backend, and is working as expected. Log messages look like this:

Apr 13 11:58:25 hafnium python[27879]: 2018-04-13 11:58:25,706 Discarding event because requestStart is out of order [{u'wmf_app_version': u'-', u'os_minor': u'4', u'os_major': u'4', u'is_bot': False, u'device_family': u'Samsung GT-N8010', u'os_family': u'Android', u'browser_minor': u'0', u'is_mediawiki': False, u'browser_major': u'65', u'browser_family': u'Chrome'}]
Krinkle closed this task as Resolved.Apr 14 2018, 1:34 AM