After you havecreated a schema, you must add an entry to $wgEventStreams stream configuration, and also to $wgEventLoggingStreamNames. $wgEventStreams is where your event stream is declared, and it specifies which schema the events in the stream have. $wgEventLoggingStreamNames registers the stream for use with the EventLogging extension. Seehttps://wikitech.wikimedia.org/wiki/Event_Platform/Instrumentation_How_To for more in depth instructions.
ext.eventLogging
module which contains themw.eventLog
object).Seedoc.wikimedia.org: EventLogging debug.js for API documentation.
$wgEventLoggingServiceUri
with the JSON events in the POST body. To see the log events you canserver/bin/eventlogging-devserver
in the EventLogging extension which pretty-prints the query string.mw.loader.using('mediawiki.api').then(()=>newmw.Api().saveOption('eventlogging-display-web','1'));
eventlogging-display-console
instead ofeventlogging-display-web
in the above snippet to enable console logs without the popups. Use the same snippets withnull
instead of'1'
to disable.then
callback after alogEvent
call, for example:mw.eventLog.logEvent('MySchema',{foo:'bar'}).then(()=>{console.log('A MySchema event has been sent!');// All validation errors will have been tracked via the// 'eventlogging.error' topic. Since I0bf3bd91, however, there's no// easy way to detect if the event that was logged was valid.},()=>console.warn('Couldn\'t log the MySchema event!'));
Often you want to log clicks on links. If these take the user away from the current page, there's a chance that the browser will move to the new page before the request for the beacon image makes it onto the network, and the browser will drop the request.The E3 team experimented with using deferred promises to deal with this, but that introduced known and unknown unknowns.T44815 is related to this issue.
There are significant performance concerns regarding logging before showing the next page and our recommendation is not to do that until the new beacon API becomes available[1]. Details on performance issues can be found here:https://bugzilla.wikimedia.org/show_bug.cgi?id=52287