This task tracks migrating the *WebUIActionsTracking instruments to use the Metrics Platform.
=== TODO
[] Implement parallel versions of the instruments using the Metrics Platform
** See https://gerrit.wikimedia.org/r/c/mediawiki/extensions/WikimediaEvents/+/799353
=== QA Steps
1. Add P30427 to LocalSettings.php
==== 1
1. Navigate to /wiki/Main_Page
1. Observe that events like the following have been submitted:
**Stream: eventlogging_DesktopWebUIActionsTracking**
```
{
"event": {
"action": "init",
"isAnon": ...,
"skin": "vector-2022",
"editCountBucket": ...,
"isSidebarCollapsed": ...,
"viewportSizeBucket": ...,
"pageNamespace": ...,
"pageToken": ...,
"token": ...
}
...
}
```
**Stream: web_ui_actions**
```
{
"name": "web.ui.init",
"custom_data": {
"skin_version": { "data_type": "number", "value":"2" },
"is_sidebar_collapsed": { "data_type": "boolean", "value": "false" },
"viewport_size_bucket": { "data_type": "string", "value": ... }
},
"performer": {
"is_logged_in": ...,
"session_id": ...,
"pageview_id": ...
"edit_count_bucket": ...
},
"mediawiki": {
"skin": "vector-2022"
},
"page": {
"namespace": ...
},
...
}
```
Those events should have the same values for the following properties:
| LHS | RHS |
| --- | --- |
| event.isAnon | !performer.is_logged_in |
| event.skin | mediawiki.skin |
| event.editCountBucket | performer.edit_count_bucket |
| event.isSidebarCollapsed | custom_data.is_sidebar_collapsed.value |
| event.viewportSizeBucket | custom_data.viewport_size_bucket |
| event.pageNamespace | page.namespace |
| event.pageToken | performer.pageview_id |
| event.token | performer.session_id |
1. Click « to collapse the sidebar
1. Observe that an `action=click,name=ui.sidebar` event has been submitted to the eventlogging_DesktopWebUIActionsTracking stream
1. Observe that an `event=web.ui.click,custom_data.el_id.value=ui.sidebar` event has been submitted to the web_ui_actions stream
1. Click "Mobile view" to navigate to the mobile site
1. Observe that events like the following have been submitted:
**Stream: eventlogging_MobileWebUIActionsTracking**
```
{
"event": {
"action": "init",
// NOTE: This duplicates the pageNamespace property below
"name": "ns=0",
"modes": ...,
"pageNamespace": ...,
"token": "...",
"pageToken": "...",
"isAnon": ...,
"editCountBucket": "5-99 edits"
}
}
```
**Stream: web_ui_actions**
```
{
"name": "web.ui.init",
"custom_data": {
"modes": { "data_type": "string", "value": "stable,amc" }
},
"performer": {
"is_logged_in": ...,
"session_id": ...,
"pageview_id": ...
"edit_count_bucket": ...
},
"mediawiki": {
"skin": "minerva"
},
"page": {
"namespace": ...
},
...
}
```
Those events should have the same values for the following properties:
| LHS | RHS |
| --- | --- |
| event.name | - |
| event.modes | custom_data.modes.value |
| event.pageNamespace | page.namespace |
| event.token | performer.session_id |
| event.pageToken | performer.pageview_id |
| event.isAnon | !performer.is_logged_in |
| event.editCountBucket | performer.edit_count_bucket |
| - | mediawiki.skin |
1. Observe that an `event=web.ui.init` event has been submitted to the web_ui_actions stream
1. Click the hamburger to open the menu
1. Observe that a `action=click,name=ui.mainmenu` event has been logged to the same stream
1. Observe that an `event=web.ui.click,custom_data.el_id.value=ui.mainmenu` event has been submitted to the web_ui_actions stream