Webperf

From Wikitech
Jump to: navigation, search

webperf is a set of scripts that aggregate/extract (typically EventLogging) data and send it to statsd.

Setup

Sources are directly in puppet in the webperf module.

The corresponding role is in manifests/role/webperf.pp.

Code gets deployed directly through puppet to hafnium.

Each script is a separate Upstart service.

Metrics

navtiming

The navtiming service extracts information for the NavigationTiming and SaveTiming schemas from EventLogging.

NavigationTiming is reported to frontend.navtiming in statsd. To see if it's running properly, the frontend.navtiming.dnsLookup.overall.rate key always has hits (as of 2014-12-22).

SaveTiming get reported to mw.performance.save in statsd. To see if it's running properly, the mw.performance.save.HHVM.rate key always has hits (as of 2014-12-22).

mw-js-deprecate

The mw-js-deprecate metrics come from the 'mw.deprecate' event, as fired by MediaWiki core from mw.log.deprecate() using mw.track(). It is then reported via statsv and statsd to the mw.js.deprecate.* namespace in Graphite. For test purposes, you can use subkey addOnloadHook which currently always has hits (as of 2015-06-12).

Before Statsv, this information was logged via the DeprecatedUsage schema using EventLogging.

ve

The ve service extracts information for the TimingData schema from EventLogging.

Data gets reported to whatever the event's points field holds, but typically underneath ve.mwtiming. in statsd. A key that currently (2014-12-22) always has hits, and can hence used to see if it is up and running is ve.mwtiming.performance.system.domLoad.

See also