Description
Details
- Other Assignee
- KCVelaga_WMF
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| In Progress | None | T350483 Track usage of MinT in the Translate extension | |||
| Resolved | Wangombe | T364460 Implement the instrumentation to track usage of MinT in the Translate extension |
Event Timeline
Change #1092921 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event Logging: User accepts a translation suggestion[DNM]
Change #1094375 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event Logging: User exits the translation dashboard
Change #1097499 had a related patch set uploaded (by Wangombe; author: Wangombe):
[operations/mediawiki-config@master] Add Metrics Platform stream configuration for translate_extension
As at the posting of this comment, several patches from this Gerrit topic have been merged. Some require a configuration patch to be scheduled for a backport on 9th Nov 2024 prior to further testing to confirm that they are in order, ready to post the metrics.
A note: This Google Sheet has helped in keeping track of the instrumentation items. The 'patch' column has an entry against each instrument with a link to the individual patches.
Change #1101503 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event Logging: Update streamName and schemaId
Change #1097499 merged by jenkins-bot:
[operations/mediawiki-config@master] Add Metrics Platform stream configuration for translate_extension
Mentioned in SAL (#wikimedia-operations) [2024-12-09T14:06:10Z] <lucaswerkmeister-wmde@deploy2002> Started scap sync-world: Backport for [[gerrit:1097499|Add Metrics Platform stream configuration for translate_extension (T364460)]]
Mentioned in SAL (#wikimedia-operations) [2024-12-09T14:11:45Z] <lucaswerkmeister-wmde@deploy2002> lucaswerkmeister-wmde, wangombe: Backport for [[gerrit:1097499|Add Metrics Platform stream configuration for translate_extension (T364460)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)
Mentioned in SAL (#wikimedia-operations) [2024-12-09T14:23:23Z] <lucaswerkmeister-wmde@deploy2002> Finished scap sync-world: Backport for [[gerrit:1097499|Add Metrics Platform stream configuration for translate_extension (T364460)]] (duration: 17m 12s)
Change #1101503 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: Update streamName and schemaId
Change #1101829 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event Logging: User edits a translation | User publishes a translation
Change #1101830 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@wmf/1.44.0-wmf.6] Event Logging: Update streamName and schemaId
Change #1101830 merged by jenkins-bot:
[mediawiki/extensions/Translate@wmf/1.44.0-wmf.6] Event Logging: Update streamName and schemaId
Mentioned in SAL (#wikimedia-operations) [2024-12-10T14:40:00Z] <lucaswerkmeister-wmde@deploy2002> Started scap sync-world: Backport for [[gerrit:1101830|Event Logging: Update streamName and schemaId (T364460)]]
Mentioned in SAL (#wikimedia-operations) [2024-12-10T14:44:30Z] <lucaswerkmeister-wmde@deploy2002> lucaswerkmeister-wmde, wangombe: Backport for [[gerrit:1101830|Event Logging: Update streamName and schemaId (T364460)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)
Mentioned in SAL (#wikimedia-operations) [2024-12-10T15:05:40Z] <lucaswerkmeister-wmde@deploy2002> Finished scap sync-world: Backport for [[gerrit:1101830|Event Logging: Update streamName and schemaId (T364460)]] (duration: 25m 40s)
Change #1104947 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event Logging: click event - User publishes a translation
Change #1105268 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event logging: Add interactionData to submitIntraction
Change #1078542 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: Add 'message_prompt' action
Change #1105268 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event logging: update schemaId
Change #1105283 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@wmf/1.44.0-wmf.8] Event logging: update schemaId
Change #1105290 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event logging: pass empty object to translation property
Change #1105290 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event logging: pass empty object to translation property
Change #1105341 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@wmf/1.44.0-wmf.8] Event logging: pass empty object to translation property
Change #1105341 merged by jenkins-bot:
[mediawiki/extensions/Translate@wmf/1.44.0-wmf.8] Event logging: pass empty object to translation property
Mentioned in SAL (#wikimedia-operations) [2024-12-19T08:15:22Z] <kartik@deploy2002> Started scap sync-world: Backport for [[gerrit:1105341|Event logging: pass empty object to translation property (T364460)]]
Mentioned in SAL (#wikimedia-operations) [2024-12-19T08:28:01Z] <kartik@deploy2002> wangombe, kartik: Backport for [[gerrit:1105341|Event logging: pass empty object to translation property (T364460)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)
Mentioned in SAL (#wikimedia-operations) [2024-12-19T08:37:14Z] <kartik@deploy2002> Finished scap sync-world: Backport for [[gerrit:1105341|Event logging: pass empty object to translation property (T364460)]] (duration: 21m 52s)
Change #1105283 merged by jenkins-bot:
[mediawiki/extensions/Translate@wmf/1.44.0-wmf.8] Event logging: update schemaId
Mentioned in SAL (#wikimedia-operations) [2024-12-19T08:51:57Z] <kartik@deploy2002> Started scap sync-world: Backport for [[gerrit:1105283|Event logging: update schemaId (T364460)]]
Mentioned in SAL (#wikimedia-operations) [2024-12-19T08:57:50Z] <kartik@deploy2002> kartik, wangombe: Backport for [[gerrit:1105283|Event logging: update schemaId (T364460)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)
Mentioned in SAL (#wikimedia-operations) [2024-12-19T09:17:17Z] <kartik@deploy2002> Finished scap sync-world: Backport for [[gerrit:1105283|Event logging: update schemaId (T364460)]] (duration: 25m 20s)
Change #1094375 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: User exits the translation dashboard
Change #1104947 abandoned by Wangombe:
[mediawiki/extensions/Translate@master] Event Logging: User clicks publish translation
Reason:
Changes integrated into: 1104947
Change #1109662 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event Logging: Use translation object for interactionData
Change #1111886 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event Logging: replace `target_lang` with `target_language` in translate.js
Change #1111886 abandoned by Wangombe:
[mediawiki/extensions/Translate@master] Event Logging: replace `target_lang` with `target_language` in translate.js
Reason:
Can be resolved in 1109662
Change #1109662 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: Use translation object for interactionData
Change #1084043 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: Translation editor of a message is opened
Change #1092915 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: When translation suggestions are shown to the user
Change #1078615 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: Add 'switch_translate_content' action
Change #1092921 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: User accepts a translation suggestion
Change #1120656 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event logging: User makes an edit in the translation editor
Change #1101829 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: User publishes a translation
Change #1120656 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event logging: User makes an edit in the translation editor
Change #1122722 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event Logging: fix `translation.source_id' should be integer`
Change #1122722 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event Logging: fix `translation.source_id' should be integer`
@Wangombe confirmed that all the instrumentation has been deployed to testwiki. I will start the QA work next week.
User opens the translation interface ✅
{
"action": "interface_open",
"translation": {
"source_language": "en",
"target_language": "te",
"source_title": "!additions",
"source_type": "page",
"translatable_count": 0,
"translated_count": 0
},
"action_source": "direct_open",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "0 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "3725f3573ab2a152a563"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:11:17.470Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}User is shown, "Please select another language to translate into." ✅
{
"action": "message_prompt",
"translation": {},
"action_subtype": "change_lang",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "0 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "3725f3573ab2a152a563"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:19:27.867Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}Users changes the target language ✅
{
"action": "click",
"translation": {
"target_language": "te",
"translatable_count": 0,
"translated_count": 0
},
"action_subtype": "change_target_lang",
"action_source": "language_selector",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "0 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "3725f3573ab2a152a563"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:20:48.476Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}Users switches the content to translate ✅
{
"action": "click",
"translation": {
"source_title": "page-Gothic Sports",
"source_type": "translatable-page",
"translatable_count": 2,
"translated_count": 0
},
"action_subtype": "switch_translate_content",
"action_source": "message_group_menu",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "0 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "14093d2f3d10c307ca6b"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:24:10.806Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}Translation editor of a message is opened ✅
{
"action": "click",
"translation": {
"source_title": "Translations:Gothic Sports/Page display title/te",
"source_type": "message"
},
"action_subtype": "open",
"action_source": "edit_translation_button",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "0 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "14093d2f3d10c307ca6b"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:24:10.865Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}A translation suggestion is shown to the user
The events are not being logged as expected.
- In the example below, the first message is "page-Advanced question settings|Translations:Advanced question settings/Page display title/te" - this is fine.
- The second event is of the next message, which I haven't opened. There is no suggestion shown when I actually opened the message. A suggest event is being logged without action_source -- this event shouldn't be logged as there is no suggestion.
- It seems to be happen only the first time a new group of messages is selected.
{
"action": "suggestion",
"translation": {
"source_title": "page-Advanced question settings|Translations:Advanced question settings/Page display title/te",
"target_title": "Translations:Advanced question settings/Page display title/te",
"source_language": "en",
"target_language": "te"
},
"action_source": "MinT",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "fbc4847d07f44256d5bf"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:44:43.111Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}{
"action": "suggestion",
"translation": {
"source_title": "page-Advanced question settings|Translations:Advanced question settings/1/te",
"target_title": "Translations:Advanced question settings/1/te",
"source_language": "en",
"target_language": "te"
},
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "fbc4847d07f44256d5bf"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:44:43.199Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}{F59041188}
And here is a mismatch between the actual message ID/title on the interface vs. what's being logged. The selected message is Translations:Advanced question settings/3/te, whereas in the event it is Translations:Advanced question settings/4/te, which is the next message.
{F59041190}
User accepts a translation suggestion ✅
{
"action": "click",
"translation": {},
"action_subtype": "accept_suggestion",
"action_source": "MinT",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "fbc4847d07f44256d5bf"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:57:38.451Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}User publishes a translation, and is successful (and the translation was edited when publishing) ✅
{
"action": "click",
"translation": {
"target_type": "message",
"source_title": "Translations:Advanced question settings/3/te"
},
"action_subtype": "edit",
"action_source": "publish_translation_button",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "fbc4847d07f44256d5bf"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:58:22.815Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}{
"action": "edit",
"translation": {
"modification_rate": 0.09090909090909094,
"source_title": "Translations:Advanced question settings/3/te"
},
"action_subtype": "publish_success",
"action_source": "translation_text",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "fbc4847d07f44256d5bf"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T11:58:24.362Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}User closes the message editor ✅
{
"action": "click",
"translation": {},
"action_subtype": "close",
"action_source": "close_button",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "87bd5190ba12deca61c3",
"active_browsing_session_token": "b2aee02366be1ab6b4fd",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "fbc4847d07f44256d5bf"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-11T12:01:13.560Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}User copies source text ✅
{
"action": "click",
"translation": {},
"action_subtype": "copy",
"action_source": "copy_text_button",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "a4ad46e0d70581ffa66b",
"active_browsing_session_token": "781ebc7e2b652dda66f5",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "70637a99c2ae417edd2b"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-18T16:04:46.136Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}User pastes the text ✅
{
"action": "click",
"translation": {},
"action_subtype": "paste",
"action_source": "paste_source_button",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "a4ad46e0d70581ffa66b",
"active_browsing_session_token": "781ebc7e2b652dda66f5",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "70637a99c2ae417edd2b"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-18T16:04:56.788Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}User changes the translation view/mode
list view ✅
{
"action": "click",
"translation": {},
"action_subtype": "change_mode",
"action_source": "list",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "a4ad46e0d70581ffa66b",
"active_browsing_session_token": "781ebc7e2b652dda66f5",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "70637a99c2ae417edd2b"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-18T16:05:41.531Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}page view ✅
{
"action": "click",
"translation": {},
"action_subtype": "change_mode",
"action_source": "page",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "a4ad46e0d70581ffa66b",
"active_browsing_session_token": "781ebc7e2b652dda66f5",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "70637a99c2ae417edd2b"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-18T16:06:00.156Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}review mode ✅
{
"action": "click",
"translation": {},
"action_subtype": "change_mode",
"action_source": "review",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "a4ad46e0d70581ffa66b",
"active_browsing_session_token": "781ebc7e2b652dda66f5",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "70637a99c2ae417edd2b"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-18T16:07:11.090Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}User reviews a translation ✅
{
"action": "click",
"translation": {},
"action_subtype": "review",
"action_source": "review_button",
"$schema": "/analytics/product_metrics/web/translation/1.0.0",
"mediawiki": {
"database": "testwiki",
"site_content_language": "en"
},
"page": {
"content_language": "en"
},
"agent": {
"client_platform": "mediawiki_js",
"client_platform_family": "desktop_browser"
},
"performer": {
"session_id": "a4ad46e0d70581ffa66b",
"active_browsing_session_token": "781ebc7e2b652dda66f5",
"name": "KCVelaga (WMF)",
"is_bot": false,
"is_logged_in": true,
"edit_count_bucket": "1-4 edits",
"groups": [
"*",
"user",
"autoconfirmed"
],
"registration_dt": "2024-12-02T10:20:31.000Z",
"is_temp": false,
"language": "en",
"pageview_id": "70637a99c2ae417edd2b"
},
"sample": {
"unit": "pageview",
"rate": 1
},
"dt": "2025-04-18T16:10:00.719Z",
"meta": {
"stream": "mediawiki.product_metrics.translate_extension",
"domain": "test.wikipedia.org"
}
}User exits the translation dashboard; end of session ✅
I couldn't verify the exit event from the browser, but I can confirm that it is being logged. I checked out the destination table, event.mediawiki_product_metrics_translate_extension
The exit event was logged 81 times so far, with subtypes as
browser_tab_close - 74 events
inactivity - 7 events
QA summary
All the events are being logged fine, expect for the events related to translation suggestion being shown, which I have noted in: T364460#10733074
Logstash errors
Logstash is showing a few errors, which majority of the errors being: '.translation.source_id' should be integer
For example in one of the events: source_id was logged as page-Template:AWC Header; and all the error-ed events are for action: interface_open
The source_title field should be used instead.
Summary from the data logged so far
Destination table: event.mediawiki_product_metrics_translate_extension
We have 5201 events logged so far (testwiki only); breakdown by action, subtype and source:
| action | count |
|---|---|
| click | 3862 |
| suggestion | 1151 |
| edit | 87 |
| exit | 81 |
| interface_open | 12 |
| message_prompt | 8 |
| action_subtype | count |
|---|---|
| open | 2766 |
| accept_suggestion | 501 |
| paste | 463 |
| edit | 98 |
| browser_tab_close | 74 |
| publish_error | 61 |
| publish_success | 26 |
| change_target_lang | 14 |
| close | 10 |
| change_lang | 8 |
| copy | 7 |
| inactivity | 7 |
| switch_translate_content | 3 |
| action_source | count |
|---|---|
| publish_translation | 1849 |
| edit_translation_button | 884 |
| MinT | 721 |
| paste_source_button | 391 |
| translation memory | 237 |
| translation_memory | 215 |
| MinT; translation_memory | 112 |
| publish_translation_button | 98 |
| direct_paste | 72 |
| translation_text | 62 |
| skip_to_next | 33 |
| translation_modified | 25 |
| language_selector | 14 |
| direct_open | 12 |
| close_button | 10 |
| copy_text_button | 7 |
| message_group_menu | 3 |
| assistant language | 1 |
An minor issue I identified here is, there are two variations for translation memory source being logged: translation memory and translation_memory -- this should be fixed to only use the latter (with underscore). This for events with:
action: click action_subtype
Similarly, for consistency we can use assistant_language instead of assistant language.
Other notes
I can think of some improvements to events where capturing additional data would be helpful. For example, capturing target_title for review events. However, that hasn't been included before, so it is out of scope for this task. After I do an initial analysis to answer some of the questions mentioned in T350483, we can think of any further improvements if gap has been identified.
100% of the data is currently being sanitized. So all the data older than 90 days will be dropped. I will create a task to add the stream to event sanitization allowlist, which can be done once the above issues are fixed and the instrumentation is about go live on all other wikis.
The images attached by KC are restricted. Cannot view.
To ensure a smooth user experience, the behavior noted is actually a feature. Upon landing on Special:Translate, the editor opens. This event is followed by two requests to cxserver. The first gets the translation of the current message. The subsequent request gets the translation for next message (even though the message was not opened). I'll post a patch with a different approach to resolve this issue.
Change #1140137 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event logging: Translation suggestion shown to the user
Change #1140473 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event logging: correct translation memory action subtype
Change #1142408 had a related patch set uploaded (by Wangombe; author: Wangombe):
[mediawiki/extensions/Translate@master] Event logging: correct assistant language action subtype
Change #1142408 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event logging: correct assistant language action subtype
Change #1140473 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event logging: correct translation memory action subtype
Change #1140137 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Event logging: Translation suggestion shown to the user
In the video below, only one translation suggestion event is logged. This functionality was added in https://gerrit.wikimedia.org/r/114013. Notice as well that the translation_memory action subtype now reads as expected with the underscore _.
In relation to https://gerrit.wikimedia.org/r/1142408, the result of accepting the suggestion displays the correct action source as assistant_language
Sorry, I couldn't get to this earlier. Thanks for the QA @Wangombe! I checked as well, everything looks good to me.