Extension:NavigationTiming/ja

From Linux Web Expert

Revision as of 22:10, 26 January 2024 by imported>Shirayuki (Created page with "== よくある質問 ==")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

MediaWiki 拡張機能マニュアル
NavigationTiming
リリースの状態: 安定
実装 Ajax
説明 Logs perceived latency measurements from client-side
作者 Patrick Reilly, Ori Livneh, Asher Feldman, Timo Tijhof, Ian Marlier
互換性の方針 MediaWiki とともにリリースされるスナップショット。 master には後方互換性がありません。
MediaWiki
データベースの変更 いいえ
ライセンス ライセンス未指定
ダウンロード
README
Quarterly downloads Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').
Public wikis using Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').
translatewiki.net で翻訳を利用できる場合は、NavigationTiming 拡張機能の翻訳にご協力ください
問題点 未解決のタスク · バグを報告

The NavigationTiming extension measures perceived latency in browsers. The extension is named after the W3C Navigation Timing API in web browsers, but today collects metrics from several different browser APIs.

よくある質問

Scope

The extension collects anonimised information from a sample of page views. The collection uses JavaScript and thus is limited to pageviews that:

  1. are from a modern browser, as defined by the Grade A capability check (90%+ of traffic).
  2. have the Navigation Timing API, (98% of browser traffic in 2022, 95% in Nov 2017[1])
  3. reach the "page loaded" event (99%+ of page loads).
  4. are in the random sample (configurable).

How is the information used?

File:WMF Performance Team infrastructure 2022.png
Infrastructure for navtiming at WMF.

Engineers at Wikimedia Foundation intend to use this data to assess the impact (positive and negative) of changes to application code and server configuration. Thus guiding on-going work on site performance.

Dependencies

Installation

  • <translate> [[<tvar name=2>Special:ExtensionDistributor/NavigationTiming/ja</tvar>|Download]] and move the extracted <tvar name=name>NavigationTiming/ja</tvar> folder to your <tvar name=ext>extensions/</tvar> directory.</translate>
    <translate> Developers and code contributors should install the extension [[<tvar name=git>Special:MyLanguage/Download from Git</tvar>|from Git]] instead, using:</translate>cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/NavigationTiming%2Fja
  • <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
    wfLoadExtension( 'NavigationTiming/ja' );
    $wgNavigationTimingSamplingFactor = 1;  // 100% (1 of every 1)
    
  • File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>

Oversampling

Oversampling allows us to selectively sample a larger portion of the traffic coming from a particular geography, or with a specific User Agent string in the browser.

Use cases for this include:

  • obtain detailed observations of a change in performance, based data center location
  • evaluate a change in performance due to browser upgrades (e.g. upstream Firefox 57 released an internal change intended to improve performance).

Oversampling is configured using the $wgNavigationTimingOversampleFactor variable. This variable is an associative array, and the keys that are checked are "geo" and "userAgent".

If the user's country code is included in the "geo" array, then a sample is taken with frequency 1/samplerate. If the user's browser has a User Agent string that matches a key in the userAgent array, then a sample is taken with frequency 1/samplerate. No more than one oversample is taken for a given pageload.

If the page load is oversampled, the emitted event will include these properties:

  • isOversample: true
  • oversampleReason: string, whose contents are a JSON array of reasons that the oversample happened. These will be of the form "geo:XX" (where XX is the matching country code), or "ua:ABCDEF" (where ABCDEF is the matching browser's User Agent string)

Further reading

About the data we collect:

About the Navigation Timing API in web browsers:

Code stewardship

Footnotes