Page MenuHomePhabricator

MEP Client MediaWiki JS (non-essential features)
Closed, ResolvedPublic

Description

The new event client features will be folded into the existing EventLogging extension in phases. Hopefully this will streamline code review and make it easier for us to manage the work. Each phase has its own task, since each phase will be its own patch. Things may change. For now, here is an outline of the phases:

Essential (MVP)

The 'essential' phases are captured in T238544: MEP Client MediaWiki JS (MVP).

  • Phase 1 (Base API)
    • Events are sent using HTTP POST to an EventGate instance
    • Stream configuration data is loaded by the extension and used to format events
  • Phase 2 (Sampling)
    • Per-stream uniform sampling rate can be set by a stream configuration field.
Non-essential

We know how to make these features and think they are important, but they are not on our critical path.

[] Phase 3 (Stream CCing)
- Events for a stream foo will be copied to any stream matching foo.*, and have the stream logic for foo.* applied to it.

  • Phase 4 (Association controller and others)
    • Events have certain property values assigned automatically by the client.

A rough outline in JavaScript code is provided at: https://github.com/linehan/el-epc-patch-phases.

Event Timeline

Adding #Product-Infrastructure-Team-Backlog as Better Use Of Data/Product-Data-Infrastructure project tags got archived, so this open task has an active project tag and can be found.

Change 698241 had a related patch set uploaded (by Mholloway; author: Michael Holloway):

[mediawiki/libs/metrics-platform@master] [JS] Support adding context values based on stream config

https://gerrit.wikimedia.org/r/698241

Change 698241 merged by jenkins-bot:

[mediawiki/libs/metrics-platform@master] [JS] Support adding context values based on stream config

https://gerrit.wikimedia.org/r/698241

phuedx claimed this task.
phuedx subscribed.

Both the essential and non-essential phases are done in the JS, PHP (excluding Phase 2 (Sampling) ), and Java MPCs. The Swift MPC will track the features in the Java MPC.

Being bold.