Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit f9edcd6

Browse files
authored
Resolve label metrics are _other_ and add legacy client id (#3384)
* Fixes FxA.receivedTab and Tab.opened metric are null in the dataset. * Add legacy client id in deletion request ping of Glean.
1 parent 3c70b99 commit f9edcd6

File tree

4 files changed

+51
-9
lines changed

4 files changed

+51
-9
lines changed

app/metrics.yaml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ searches:
8080
counts:
8181
type: labeled_counter
8282
description: >
83-
Counting how many searches are queried in a specific search engine. The search engine `identifier`s are used as keys for this metric.
83+
Counting how many searches are queried in a specific search engine.
84+
The search engine `identifier`s are used as keys for this metric.
8485
bugs:
8586
- https://github.com/MozillaReality/FirefoxReality/issues/2230
8687
data_reviews:
@@ -254,3 +255,20 @@ control:
254255
255256
256257
expires: "2020-11-01"
258+
259+
legacy_telemetry:
260+
client_id:
261+
type: uuid
262+
description: >
263+
A UUID uniquely identifying the legacy telemetry client id.
264+
This is used for supporting legacy telemetry in the `deletion-request` ping.
265+
send_in_pings:
266+
- deletion-request
267+
bugs:
268+
- https://github.com/MozillaReality/FirefoxReality/issues/2347
269+
data_reviews:
270+
- https://github.com/MozillaReality/FirefoxReality/pull/2348#issuecomment-564736919
271+
notification_emails:
272+
273+
274+
expires: "2020-11-01"

app/src/common/shared/org/mozilla/vrbrowser/telemetry/GleanMetricsService.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
import androidx.annotation.UiThread;
88
import androidx.annotation.VisibleForTesting;
99

10+
import org.mozilla.telemetry.TelemetryHolder;
1011
import org.mozilla.vrbrowser.BuildConfig;
1112
import org.mozilla.vrbrowser.GleanMetrics.Distribution;
1213
import org.mozilla.vrbrowser.GleanMetrics.FirefoxAccount;
14+
import org.mozilla.vrbrowser.GleanMetrics.LegacyTelemetry;
1315
import org.mozilla.vrbrowser.GleanMetrics.Pings;
1416
import org.mozilla.vrbrowser.GleanMetrics.Searches;
1517
import org.mozilla.vrbrowser.GleanMetrics.Url;
@@ -24,6 +26,7 @@
2426
import java.util.HashMap;
2527
import java.util.HashSet;
2628
import java.util.Map;
29+
import java.util.UUID;
2730

2831
import mozilla.components.service.glean.Glean;
2932
import mozilla.components.service.glean.config.Configuration;
@@ -51,6 +54,8 @@ public static void init(Context aContext) {
5154
} else {
5255
GleanMetricsService.stop();
5356
}
57+
58+
LegacyTelemetry.INSTANCE.clientId().set(UUID.fromString(TelemetryHolder.get().getClientId()));
5459
Configuration config = new Configuration(Configuration.DEFAULT_TELEMETRY_ENDPOINT, BuildConfig.BUILD_TYPE);
5560
Glean.INSTANCE.initialize(aContext, true, config);
5661
}
@@ -194,7 +199,7 @@ public static void sentTab() {
194199
}
195200

196201
public static void receivedTab(@NonNull mozilla.components.concept.sync.DeviceType source) {
197-
FirefoxAccount.INSTANCE.getReceivedTab().get(source.name()).add();
202+
FirefoxAccount.INSTANCE.getReceivedTab().get(source.name().toLowerCase()).add();
198203
}
199204
}
200205

@@ -213,7 +218,7 @@ public enum TabSource {
213218
}
214219

215220
public static void openedCounter(@NonNull TabSource source) {
216-
org.mozilla.vrbrowser.GleanMetrics.Tabs.INSTANCE.getOpened().get(source.name()).add();
221+
org.mozilla.vrbrowser.GleanMetrics.Tabs.INSTANCE.getOpened().get(source.name().toLowerCase()).add();
217222
}
218223

219224
public static void activatedEvent() {

app/src/test/java/org/mozilla/vrbrowser/GleanMetricsServiceTest.kt

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ import org.junit.Assert.*
77
import org.junit.Rule
88
import org.junit.Test
99
import org.junit.runner.RunWith
10+
import org.mozilla.telemetry.TelemetryHolder
1011
import org.mozilla.vrbrowser.GleanMetrics.Distribution
1112
import org.mozilla.vrbrowser.GleanMetrics.FirefoxAccount
13+
import org.mozilla.vrbrowser.GleanMetrics.LegacyTelemetry
1214
import org.mozilla.vrbrowser.GleanMetrics.Tabs
1315
import org.mozilla.vrbrowser.GleanMetrics.Url
1416
import org.mozilla.vrbrowser.telemetry.GleanMetricsService
@@ -119,22 +121,30 @@ class GleanMetricsServiceTest {
119121
assertTrue(FirefoxAccount.tabSent.testHasValue())
120122
assertEquals(FirefoxAccount.tabSent.testGetValue(), 1)
121123

122-
assertFalse(FirefoxAccount.receivedTab[DeviceType.MOBILE.name].testHasValue())
124+
assertFalse(FirefoxAccount.receivedTab[DeviceType.MOBILE.name.toLowerCase()].testHasValue())
123125
GleanMetricsService.FxA.receivedTab(DeviceType.MOBILE)
124-
assertTrue(FirefoxAccount.receivedTab[DeviceType.MOBILE.name].testHasValue())
125-
assertEquals(FirefoxAccount.receivedTab[DeviceType.MOBILE.name].testGetValue(), 1)
126+
assertTrue(FirefoxAccount.receivedTab[DeviceType.MOBILE.name.toLowerCase()].testHasValue())
127+
assertEquals(FirefoxAccount.receivedTab[DeviceType.MOBILE.name.toLowerCase()].testGetValue(), 1)
126128
}
127129

128130
@Test
129131
fun testTabTelemetry() {
130-
assertFalse(Tabs.opened[GleanMetricsService.Tabs.TabSource.BOOKMARKS.name].testHasValue())
132+
assertFalse(Tabs.opened[GleanMetricsService.Tabs.TabSource.BOOKMARKS.name.toLowerCase()].testHasValue())
131133
GleanMetricsService.Tabs.openedCounter(GleanMetricsService.Tabs.TabSource.BOOKMARKS)
132-
assertTrue(Tabs.opened[GleanMetricsService.Tabs.TabSource.BOOKMARKS.name].testHasValue())
133-
assertEquals(Tabs.opened[GleanMetricsService.Tabs.TabSource.BOOKMARKS.name].testGetValue(), 1)
134+
assertTrue(Tabs.opened[GleanMetricsService.Tabs.TabSource.BOOKMARKS.name.toLowerCase()].testHasValue())
135+
assertEquals(Tabs.opened[GleanMetricsService.Tabs.TabSource.BOOKMARKS.name.toLowerCase()].testGetValue(), 1)
134136

135137
assertFalse(Tabs.activated.testHasValue())
136138
GleanMetricsService.Tabs.activatedEvent()
137139
assertTrue(Tabs.activated.testHasValue())
138140
assertEquals(Tabs.activated.testGetValue(), 1)
139141
}
142+
143+
@Test
144+
fun testLegacyTelemetry() {
145+
assertFalse(LegacyTelemetry.clientId.testHasValue())
146+
LegacyTelemetry.clientId.set(java.util.UUID.fromString(TelemetryHolder.get().getClientId()))
147+
assertTrue(LegacyTelemetry.clientId.testHasValue())
148+
assertEquals(LegacyTelemetry.clientId.testGetValue().toString(), TelemetryHolder.get().getClientId())
149+
}
140150
}

docs/metrics.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ This means you might have to go searching through the dependency tree to get a f
88
# Pings
99

1010
- [baseline](#baseline)
11+
- [deletion-request](#deletion-request)
1112
- [events](#events)
1213
- [metrics](#metrics)
1314
- [session-end](#session-end)
@@ -25,6 +26,14 @@ The following metrics are added to the ping:
2526
| --- | --- | --- | --- | --- | --- |
2627
| distribution.channel_name |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The distribution channel name of this application. We use this field to recognize Firefox Reality is distributed to which channels, such as wavevr, oculusvr, etc. |[1](https://github.com/MozillaReality/FirefoxReality/pull/1854#issuecomment-546214568), [2](https://github.com/MozillaReality/FirefoxReality/pull/3199#issuecomment-617938749)||2020-11-01 |
2728

29+
## deletion-request
30+
31+
The following metrics are added to the ping:
32+
33+
| Name | Type | Description | Data reviews | Extras | Expiration |
34+
| --- | --- | --- | --- | --- | --- |
35+
| legacy_telemetry.client_id |[uuid](https://mozilla.github.io/glean/book/user/metrics/uuid.html) |A UUID uniquely identifying the legacy telemetry client id. This is used for supporting legacy telemetry in the `deletion-request` ping. |[1](https://github.com/MozillaReality/FirefoxReality/pull/2348#issuecomment-564736919)||2020-11-01 |
36+
2837
## events
2938

3039
This is a built-in ping that is assembled out of the box by the Glean SDK.

0 commit comments

Comments
 (0)