Erweiterung:EventLogging

This page is a translated version of the page Extension:EventLogging and the translation is 100% complete.
MediaWiki-Erweiterungen
OOjs UI icon advanced-invert.svg
EventLogging
Freigabestatus: stabil
Einbindung Spezialseite , Datenbank , ContentHandler
Beschreibung Bietet einen Rahmen für die Protokollierung von Analyseereignissen
Autor(en) Ori.livnehDiskussion
Letzte Version Laufende Aktualisierungen
MediaWiki 1.33+
PHP 5.5+
Datenbankänderungen Nein
Lizenz GNU General Public License 2.0 oder neuer
Herunterladen
  • $wgEventLoggingStreamNames
  • $wgEventLoggingSchemaApiUri
  • $wgEventLoggingServiceUri
  • $wgEventLoggingQueueLingerSeconds
  • $wgEventLoggingBaseUri
  • $wgEventLoggingSchemas
  • $wgEventLoggingDBname
Übersetze die EventLogging-Erweiterung, wenn sie auf translatewiki.net verfügbar ist
Vagrant-Rolle eventlogging
Probleme Offene Aufgaben · Einen Fehler melden

Die EventLogging-Erweiterung ermöglicht es, strukturierte Daten darüber zu sammeln, wie Nutzer mit MediaWiki-Seiten interagieren.

Funktionen

  • EventLogging unterstützt Client-seitiges Logging von JavaScript und Server-seitiges Logging von PHP.
  • Das Logging-Verhalten kann mit Erweiterung:EventStreamConfig dynamisch konfiguriert werden.
  • Die Ereignisse sind JSON-Objekte, die durch versionierte JSONSchemas definiert sind, die in einem Schema-Git-Repository gespeichert sind.
  • Die Erweiterung enthält keinen Back-End-Code für den Transport, das Parsing oder das Laden dieser Ereignisse. Ein separater Dienst, EventGate, implementiert diese Funktionalität und kümmert sich um das Einfügen von Ereignissen in Kafka. Die Ereignisse werden dann über verschiedene Ingestion-Pipelines in nachgelagerten Datenspeichern (z. B. Hive) persistiert. Die Details dieser Komponenten sind spezifisch für die Konfiguration der Wikimedia Foundation.

EventLogging bei Wikimedia

Die Wikimedia Foundation verwendet die EventLogging-Erweiterung als Teil eines größeren Systems zum Sammeln, Aggregieren, Speichern und Analysieren von Nutzerdaten innerhalb der Grenzen, die in unserer Datenschutzrichtlinie und Datenaufbewahrungsrichtlinie festgelegt sind.

Auf dieser Seite geht es um die allgemeine Verwendung der EventLogging-Erweiterung. Die Wikimedia Foundation verwendet EventLogging mit WMF-spezifischen Backend-Komponenten und [1]. Für Wikimedia-spezifische und gepflegte Dokumentation, siehe wikitech:Analytics/Systems/EventLogging und wikitech:Event Platform.

Installation

  • Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens EventLogging im Ordner extensions/ ablegen.
  • Folgenden Code am Ende der LocalSettings.php einfügen:
    wfLoadExtension( 'EventLogging' );
    $wgEventLoggingBaseUri = '/beacon/event';
    $wgEventLoggingServiceUri = '/beacon/intake-analytics';
    $wgEventLoggingStreamNames = false;
    
  •   Erledigt – Zu Special:Version in dem Wiki (bei Einstellung auf deutsch nach Spezial:Version) navigieren, um die erfolgreiche Installierung der Erweiterung zu überprüfen.


Vagrant-Installation:

  • Wird Vagrant benutzt, ist mit vagrant roles enable eventlogging --provision zu installieren

Konfigurieren des Schemaspeicherorts

Standardmäßig sucht die Erweiterung nach Schemas auf Meta-Wiki. Die relevanten Standardeinstellungen sind:

# (default) $wgEventLoggingSchemaApiUri = 'https://meta.wikimedia.org/w/api.php';
# (default) $wgEventLoggingDBname = 'metawiki';

Um lokale Schemas oder Schemas aus dem zentralen Wiki deiner eigenen wikifarm zu verwenden, musst du diese überschreiben. Um z.B. den Schema-Namensraum des lokalen Wikis zu verwenden, setze

$wgEventLoggingSchemaApiUri = $wgServer . '/w/api.php';
$wgEventLoggingDBname = $wgDBname;

(und stelle sicher, dass das Benutzerkonto, das die Schemas erstellt, autoconfirmed ist).

Ereignisse protokollieren mit EventLogging

Entwicklung der EventLogging-Erweiterung

Entwickler-Einrichtung

Als Entwickler möchtest du EventLogging auf deinem Entwicklungs-Wiki einrichten und verwenden, um den Einsatz in der Produktion zu simulieren.

Mit Docker

Siehe MediaWiki-Docker/Configuration recipes/EventLogging

Mit mediawiki-vagrant

Wenn du mit mediawiki-vagrant entwickelst, ist alles, was du brauchst, in der eventlogging-Rolle gekapselt. Um sie zu aktivieren, führe aus:

$ vagrant roles enable eventlogging
$ vagrant provision

Für JavaScript-Entwicklung

Wenn du mit dem JavaScript-Client arbeitest, musst du die Abhängigkeiten mit npm install aus dem Ordner installieren, in dem du entwickelst. Dann kannst du npm test verwenden, um zum Beispiel ESLint auszuführen. Im Abschnitt "Wie führe ich Tests durch?" weiter unten erfährst du, wie du die Ergebnisse von JavaScript-Tests sehen kannst.

Wenn du den Parameter trackdebug=true zur URL hinzufügst, zeigt die Konsole in den Devtools des Browsers die ausgelöste Ereignisprotokollierung an.

Wie man Tests ausführt

Es gibt PHP-Tests, Python-Tests und JavaScript-Tests.

Um JavaScript-Tests auszuführen, besuche Special:JavaScriptTest/qunit auf deinem Entwicklungswiki. (Siehe Manual:JavaScript unit testing .)

Um PHP-Tests auszuführen, verwenden wir PHPUnit. Stelle sicher, dass es installiert ist, dann:

$ vagrant ssh
vagrant@mediawiki-vagrant:/vagrant/mediawiki/extensions/EventLogging/tests$ php /vagrant/mediawiki/tests/phpunit/phpunit.php EventLoggingExtensionFunctionsTest.php