Page MenuHomePhabricator

Allow tracking of max run time / conditions consumed in AbuseFilter
Open, LowPublic


Right now AbuseFilter provides per filter stats on mean run time and number of conditions utilized (or it would if it wasn't horribly broken per T53294). I would like to propose adding stats on max run time / conditions to help identify filters that are sometimes very slow but only rarely so. Since most filters have a series of fast early selections criteria (e.g. checking article namespace or not autoconfirmed user) it isn't always obvious how fast or slow the guts of the filter may be. Recording the longest run time in an observed sample would help to identify filters that occasionally perform badly. The present system tracks the mean properties of the last 10,000 actions, and also adding the max values to the statistics would not be difficult.

Event Timeline

Dragons_flight raised the priority of this task from to Medium.
Dragons_flight updated the task description. (Show Details)
Dragons_flight added a project: AbuseFilter.
Dragons_flight subscribed.
Aklapper lowered the priority of this task from Medium to Low.Mar 3 2015, 2:05 PM

Change 201171 that I wrote includes this functionality as part of its changes:

Expands stat tracking in AbuseFilter

Change 201171 had a related patch set uploaded (by Daimona Eaytoy; owner: Dragons flight):
[mediawiki/extensions/AbuseFilter@master] Expand stat tracking in AbuseFilter

An important note which I'm putting here as a reminder: if we merge the patch for T53294 and let it live and register even a single edit, when these stats will be added some errors will start to pop up due to missing data in old entries. A solution could be to delete all stash keys, set AbuseFilterProfileActionsCap to 0 (no profiling), deploy this and then re-enable profiling.

Claiming as I took over the patch.

Removing task assignee due to inactivity, as this open task has been assigned to the same person for more than two years (see the emails sent to the task assignee on Oct27 and Nov23). Please assign this task to yourself again if you still realistically [plan to] work on this task - it would be welcome.
(See for tips how to best manage your individual work in Phabricator.)