Page MenuHomePhabricator

Remove old pcache metric compat from ParserCache.php
Closed, ResolvedPublic

Description

Follow-up from https://gerrit.wikimedia.org/r/#/c/mediawiki/core/+/486323/9/includes/parser/ParserCache.php.
Transferring from my obscure bookmark folder to an actual task.

/cc @Addshore

Krinkle wrote Jan 24, 2019:

LGTM, but will want to do a full search on Grafana to make sure we find all existing uses first, also to help inform if the current nesting would make certain use cases hard to reproduce.

This is also a good opportunity to modernise this particular metric to be more flat (less arbitrary nesting, except for the purpose of fragmentation), in preparation for a more OpenMetrics/Prometheus-friendly.

In this case, seems like the metrics could be pcache_miss{model,cause} and pcache_hit{model}. Which we could format in statsd (for now) as pcache_miss.model_$model.cause_$cause and pcache_hit.model_$model.

I wrote a script that can do this at
https://gist.github.com/Krinkle/b5ceff5156c1f4cf3568e373cc135bad

Addshore wrote Jan 24, 2019

We could leave the old metric names reporting for a "transition period", removing them in a future branch / patch / week

Addshore wrote Feb 19, 2019

Deployed and I see data, now we just have to figure out how to display this in a meaningful way

Event Timeline

Just finished my vacation and getting back up to speed.

Gonna assign myself to this so it doesn't drop of my radar now I'm back.

Addshore triaged this task as Medium priority.Oct 31 2019, 1:15 PM

Thanks for the script!

node 01-search-all-grafana.js  MediaWiki.pcache
Searching for: /[("'{,]MediaWiki.pcache[^"')}]*/g
Found 411 dashboards
Checking .......................................... (42/411)
Checking .......................................... (84/411)
Checking .......................................... (126/411)
Checking .......................................... (168/411)
Checking .......................................... (210/411)
Checking .............
Matched db/parser-cache (Parser Cache)
[
  '(MediaWiki.pcache.hit.rate, MediaWiki.pcache.miss.*.rate',
  '(MediaWiki.pcache.hit.rate, #A',
  '(MediaWiki.pcache.miss.absent.rate, #A',
  '(MediaWiki.pcache.miss.expired.rate, #A',
  '(MediaWiki.pcache.miss.rejected.rate, #A',
  '(MediaWiki.pcache.miss.revid.rate, #A',
  '(MediaWiki.pcache.miss.stub.rate, #A',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_absent.rate',
  '(MediaWiki.pcache.$contentModel.miss_absent.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_expired.rate',
  '(MediaWiki.pcache.$contentModel.miss_expired.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_rejected.rate',
  '(MediaWiki.pcache.$contentModel.miss_rejected.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_revid.rate',
  '(MediaWiki.pcache.$contentModel.miss_revid.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_stub.rate',
  '(MediaWiki.pcache.$contentModel.miss_stub.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.hit.rate, 60',
  '(MediaWiki.pcache.miss.absent.rate, 60',
  '(MediaWiki.pcache.miss.expired.rate, 60',
  '(MediaWiki.pcache.miss.rejected.rate, 60',
  '(MediaWiki.pcache.miss.revid.rate, 60',
  '(MediaWiki.pcache.miss.stub.rate, 60',
  '(MediaWiki.pcache.$contentModel.hit.rate',
  '(MediaWiki.pcache.$contentModel.miss_absent.rate',
  '(MediaWiki.pcache.$contentModel.miss_expired.rate',
  '(MediaWiki.pcache.$contentModel.miss_rejected.rate',
  '(MediaWiki.pcache.$contentModel.miss_revid.rate',
  '(MediaWiki.pcache.$contentModel.miss_stub.rate',
  '"MediaWiki.pcache.*',
  '"MediaWiki.pcache.*'
]
Checking .......................................... (252/411)
Checking .......................................... (294/411)
Checking .......................................... (336/411)
Checking .......................................... (378/411)
Checking .................................
Done!

So just one dashboard to look at and take care of

https://grafana.wikimedia.org/d/000000106/parser-cache

Updated in version 39 of https://grafana.wikimedia.org/d/000000106/parser-cache

Will re run the script looking for usages now

Fixed a couple that I missed in version 40.

Now the script shows me everything is using the new things....

Matched db/parser-cache (Parser Cache)
[
  '(MediaWiki.pcache.*.hit.rate, MediaWiki.pcache.*.miss_*.rate',
  '(MediaWiki.pcache.*.hit.rate',
  '(MediaWiki.pcache.*.hit.rate',
  '(MediaWiki.pcache.*.hit.rate, MediaWiki.pcache.*.miss_*.rate',
  '(MediaWiki.pcache.*.miss_absent.rate',
  '(MediaWiki.pcache.*.miss_absent.rate',
  '(MediaWiki.pcache.*.hit.rate, MediaWiki.pcache.*.miss_*.rate',
  '(MediaWiki.pcache.*.miss_expired.rate',
  '(MediaWiki.pcache.*.miss_expired.rate',
  '(MediaWiki.pcache.*.hit.rate, MediaWiki.pcache.*.miss_*.rate',
  '(MediaWiki.pcache.*.miss_rejected.rate',
  '(MediaWiki.pcache.*.miss_rejected.rate',
  '(MediaWiki.pcache.*.hit.rate, MediaWiki.pcache.*.miss_*.rate',
  '(MediaWiki.pcache.*.hit.rate, MediaWiki.pcache.*.miss_*.rate',
  '(MediaWiki.pcache.*.miss_stub.rate',
  '(MediaWiki.pcache.*.miss_stub.rate',
  '(MediaWiki.pcache.*.hit.rate, MediaWiki.pcache.*.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_absent.rate',
  '(MediaWiki.pcache.$contentModel.miss_absent.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_expired.rate',
  '(MediaWiki.pcache.$contentModel.miss_expired.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_rejected.rate',
  '(MediaWiki.pcache.$contentModel.miss_rejected.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_revid.rate',
  '(MediaWiki.pcache.$contentModel.miss_revid.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.$contentModel.miss_stub.rate',
  '(MediaWiki.pcache.$contentModel.miss_stub.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate, MediaWiki.pcache.$contentModel.miss_*.rate',
  '(MediaWiki.pcache.*.hit.rate',
  '(MediaWiki.pcache.*.miss_absent.rate',
  '(MediaWiki.pcache.*.miss_expired.rate',
  '(MediaWiki.pcache.*.miss_rejected.rate',
  '(MediaWiki.pcache.*.miss_revid.rate',
  '(MediaWiki.pcache.*.miss_stub.rate',
  '(MediaWiki.pcache.$contentModel.hit.rate',
  '(MediaWiki.pcache.$contentModel.miss_absent.rate',
  '(MediaWiki.pcache.$contentModel.miss_expired.rate',
  '(MediaWiki.pcache.$contentModel.miss_rejected.rate',
  '(MediaWiki.pcache.$contentModel.miss_revid.rate',
  '(MediaWiki.pcache.$contentModel.miss_stub.rate',
  '"MediaWiki.pcache.*',
  '"MediaWiki.pcache.*'
]

Change 547533 had a related patch set uploaded (by Addshore; owner: Addshore):
[mediawiki/core@master] Remove old pcache metric compat from ParserCache.php

https://gerrit.wikimedia.org/r/547533

Change 547533 merged by jenkins-bot:
[mediawiki/core@master] Remove old pcache metric compat from ParserCache.php

https://gerrit.wikimedia.org/r/547533