Extension:EventLogging - MediaWiki
Jump to content
From mediawiki.org
Translate this page
Languages:
Nederlands
polski
português
português do Brasil
čeština
русский
MediaWiki extensions manual
EventLogging
Release status:
stable
Implementation
Special page
Database
ContentHandler
Description
Provides a framework for logging analytics events
Author(s)
Ori.livneh
talk
Latest version
continuous updates
MediaWiki
1.33+
PHP
5.5+
Database changes
No
Parameters
$wgEventLoggingStreamNames
$wgEventLoggingSchemaApiUri
$wgEventLoggingServiceUri
$wgEventLoggingQueueLingerSeconds
$wgEventLoggingBaseUri
$wgEventLoggingSchemas
$wgEventLoggingDBname
Hooks used
ApiMain::moduleManager
BeforePageDisplay
CanonicalNamespaces
CodeEditorGetPageLanguage
EditFilterMergedContent
GetPreferences
MovePageIsValidMove
Licence
GNU General Public License 2.0 or later
Download extension
Git
Browse repository
GitHub
Gerrit code review
Git commit log
Download source tarball
Translate the EventLogging extension
if it is available at translatewiki.net
Vagrant role
eventlogging
Issues
Open tasks
Report a bug
The EventLogging extension makes it possible to collect structured data on how users interact with MediaWiki sites.
Features
EventLogging supports client-side logging from JavaScript and server-side logging from PHP.
Logging behavior can be dynamically configured using
Extension:EventStreamConfig
The events are JSON objects defined by versioned JSONSchemas stored in a schema git repository.
The extension does not include any back-end code for transporting, parsing, or loading these events. If you're interested in the separate components that Wikimedia uses for these purposes, see
#EventLogging at Wikimedia
EventLogging at Wikimedia
This page is about general use of the EventLogging extension.
Wikimedia uses the EventLogging extension as part of a
broader system for collecting, aggregating, storing, and analyzing user data
within the limits set out by its
and
data retention guidelines
For documentation on this system, see
wikitech:Event Platform
Installation
and move the extracted
EventLogging
folder to your
extensions/
directory.
Developers and code contributors should install the extension
from Git
instead, using:
cd
extensions/
git
clone
Add the following code at the bottom of your
LocalSettings.php
file:
wfLoadExtension
'EventLogging'
);
$wgEventLoggingBaseUri
'/beacon/event'
$wgEventLoggingServiceUri
'/beacon/intake-analytics'
$wgEventLoggingStreamNames
false
Done
– Navigate to
Special:Version
on your wiki to verify that the extension is successfully installed.
Vagrant installation:
If using
Vagrant
, install with
vagrant roles enable eventlogging --provision
Configuring the schema location
By default, the extension will look for schemas on
Meta-Wiki
The relevant default settings are:
# (default) $wgEventLoggingSchemaApiUri = 'https://meta.wikimedia.org/w/api.php';
# (default) $wgEventLoggingDBname = 'metawiki';
To use local schemas, or schemas from the central wiki of your own wikifarm, you need to override these.
E.g. to use the
Schema
namespace of the local wiki, set
$wgEventLoggingSchemaApiUri
$wgServer
'/w/api.php'
$wgEventLoggingDBname
$wgDBname
(and ensure the user account that will create the schemas is
autoconfirmed
).
Logging events using EventLogging
Extension:EventLogging/Guide
- to developing and deploying EventLogging schemas, and more
Extension:EventLogging/Programming
- tips and suggestions for developers writing code to log events
Developing the EventLogging extension
Developer setup
As a developer, you will want to set up and use EventLogging on your development wiki to simulate its use in production.
Using Docker
See
MediaWiki-Docker/Configuration recipes/EventLogging
Using mediawiki-vagrant
If you develop using mediawiki-vagrant, everything you need is encapsulated in the
eventlogging
role.
To enable it, run:
vagrant
roles
enable
eventlogging
vagrant
provision
For JavaScript development
If working on the JavaScript client, you'll need to install dependencies with
npm install
from the folder you're developing in.
Then you can use
npm test
to run ESLint for example.
The "How to run tests" section below points out how to see JavaScript test results.
When adding the parameter
trackdebug=true
to the URL, the console in the browser's devtools will show the event logging being triggered.
How to run tests
There are PHP tests, Python tests, and JavaScript tests.
To run JavaScript tests, visit Special:JavaScriptTest/qunit on your development wiki.
(See
Manual:JavaScript unit testing
.)
To run PHP tests, we use PHPUnit.
Make sure it is installed, then:
vagrant
ssh
vagrant@mediawiki-vagrant:/vagrant/mediawiki$
composer
phpunit:entrypoint
--
extensions/EventLogging/testsEventLoggingExtensionFunctionsTest.php
This extension is being used on one or more
Wikimedia projects
. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's
CommonSettings.php
and
InitialiseSettings.php
configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's
Special:Version
page.
This extension is included in the following wiki farms/hosts and/or packages:
Canasta
Miraheze
Retrieved from "
Categories
Stable extensions
Special page extensions
Database extensions
ContentHandler extensions
ApiMain::moduleManager extensions
BeforePageDisplay extensions
CanonicalNamespaces extensions
CodeEditorGetPageLanguage extensions
EditFilterMergedContent extensions
GetPreferences extensions
MovePageIsValidMove extensions
GPL licensed extensions
Extensions in Wikimedia version control
All extensions
Extensions used on Wikimedia
Extensions included in Canasta
Extensions included in Miraheze
Analytics extensions
Statistics extensions
Hidden categories:
Extensions without an image
Extensions without a compatibility policy
Extensions with manual MediaWiki version
Extension
EventLogging
Add topic
US