Addresses metrics nits
parent
51e778ead5
commit
ea01ae43be
|
@ -1,6 +1,7 @@
|
|||
# This file defines the metrics that are recorded by glean telemetry. They are
|
||||
# automatically converted to Kotlin code at build time using the `glean_parser`
|
||||
# PyPI package.
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
|
||||
$schema: moz://mozilla.org/schemas/glean/metrics/1-0-0
|
||||
|
||||
|
@ -10,53 +11,57 @@ events:
|
|||
description: >
|
||||
A user opened the app
|
||||
extra_keys:
|
||||
source: "The source from which the app was opened"
|
||||
source:
|
||||
description: "The method used to open Fenix. Possible values are: `app_icon`, `custom_tab` or `link`"
|
||||
bugs:
|
||||
- 968
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673
|
||||
notification_emails:
|
||||
- telemetry-client-dev@mozilla.com
|
||||
expires: never
|
||||
expires: "2020-03-01"
|
||||
search_bar_tapped:
|
||||
type: event
|
||||
description: >
|
||||
A user tapped the search bar
|
||||
extra_keys:
|
||||
source: "The source from which the search bar was tapped"
|
||||
source:
|
||||
description: "The view the user was on when they initiated the search (For example: `Home` or `Browser`)"
|
||||
bugs:
|
||||
- 959
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673
|
||||
notification_emails:
|
||||
- telemetry-client-dev@mozilla.com
|
||||
expires: never
|
||||
expires: "2020-03-01"
|
||||
entered_url:
|
||||
type: event
|
||||
description: >
|
||||
A user entered a url
|
||||
extra_keys:
|
||||
autocomplete: "The url was filled by the autocomplete"
|
||||
autocomplete:
|
||||
description: "A boolean that tells us whether the URL was autofilled by an Autocomplete suggestion"
|
||||
bugs:
|
||||
- 959
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673
|
||||
notification_emails:
|
||||
- telemetry-client-dev@mozilla.com
|
||||
expires: never
|
||||
expires: "2020-03-01"
|
||||
performed_search:
|
||||
type: event
|
||||
description: >
|
||||
A user performed a search
|
||||
extra_keys:
|
||||
search_suggestion: "The search was initiated from a search suggestion"
|
||||
search_suggestion:
|
||||
description: "A boolean that tells us whether or not the search term was suggested by the Awesomebar"
|
||||
bugs:
|
||||
- 959
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673
|
||||
notification_emails:
|
||||
- telemetry-client-dev@mozilla.com
|
||||
expires: never
|
||||
expires: "2020-03-01"
|
||||
|
||||
metrics:
|
||||
default_browser:
|
||||
|
@ -71,4 +76,4 @@ metrics:
|
|||
- https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673
|
||||
notification_emails:
|
||||
- telemetry-client-dev@mozilla.com
|
||||
expires: never
|
||||
expires: "2020-03-01"
|
|
@ -12,12 +12,27 @@ import org.mozilla.fenix.utils.Settings
|
|||
import org.mozilla.fenix.debug.GleanMetrics.Metrics
|
||||
import org.mozilla.fenix.debug.GleanMetrics.Events
|
||||
|
||||
private val Event.metricType: EventMetricType?
|
||||
private class EventWrapper<T : Enum<T>>(
|
||||
private val event: EventMetricType<T>,
|
||||
private val keyMapper: ((String) -> T)? = null
|
||||
) {
|
||||
fun track(event: Event) {
|
||||
val extras = if (keyMapper != null) {
|
||||
event.extras?.mapKeys { keyMapper.invoke(it.key) }
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
this.event.record(extras)
|
||||
}
|
||||
}
|
||||
|
||||
private val Event.wrapper
|
||||
get() = when (this) {
|
||||
is Event.OpenedApp -> Events.appOpened
|
||||
is Event.SearchBarTapped -> Events.searchBarTapped
|
||||
is Event.EnteredUrl -> Events.enteredUrl
|
||||
is Event.PerformedSearch -> Events.performedSearch
|
||||
is Event.OpenedApp -> EventWrapper(Events.appOpened) { Events.appOpenedKeys.valueOf(it) }
|
||||
is Event.SearchBarTapped -> EventWrapper(Events.searchBarTapped) { Events.searchBarTappedKeys.valueOf(it) }
|
||||
is Event.EnteredUrl -> EventWrapper(Events.enteredUrl) { Events.enteredUrlKeys.valueOf(it) }
|
||||
is Event.PerformedSearch -> EventWrapper(Events.performedSearch) { Events.performedSearchKeys.valueOf(it) }
|
||||
else -> null
|
||||
}
|
||||
|
||||
|
@ -32,11 +47,11 @@ class GleanMetricsService(private val context: Context) : MetricsService {
|
|||
}
|
||||
|
||||
override fun track(event: Event) {
|
||||
event.metricType?.record(event.extras)
|
||||
event.wrapper?.track(event)
|
||||
}
|
||||
|
||||
override fun shouldTrack(event: Event): Boolean {
|
||||
return Settings.getInstance(context).isTelemetryEnabled && event.metricType != null
|
||||
return Settings.getInstance(context).isTelemetryEnabled && event.wrapper != null
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
@ -12,16 +12,12 @@ Fenix creates and tries to send a "baseline" ping. It is defined inside the [`me
|
|||
|
||||
## Events
|
||||
|
||||
Fenix sends event pings that allows us to measure feature performance.
|
||||
Fenix sends event pings that allows us to measure feature performance. These are defined inside the [`metrics.yaml`](https://github.com/mozilla-mobile/fenix/blob/master/app/metrics.yaml) file.
|
||||
|
||||
| Event | Glean Key | Leanplum Key | extras |
|
||||
|-----------------|-------------------|--------------|-----------------------|
|
||||
| OpenedApp | app_opened | E_Opened_App | source* |
|
||||
| SearchBarTapped | search_bar_tapped | | source** |
|
||||
| EnteredUrl | entered_url | | autocomplete*** |
|
||||
| PerformedSearch | performed_search | | search_suggestion**** |
|
||||
## Leanplum Events
|
||||
|
||||
* `source`: The method used to open Fenix (For exmaple: `app_icon` or `link`)
|
||||
** `source`: The view the user was on when they initiated the search (For example: `Home` or `Browser`)
|
||||
*** `autocomplete`: A boolean that tells us wether the URL was autofilled by an Autocomplete suggestion
|
||||
**** `search_suggestion`: A boolean that tells us wether or not the search term was suggested by the Awesomebar
|
||||
| Event | Leanplum Key | extras |
|
||||
|-----------------|---------------|-----------------------|
|
||||
| OpenedApp | E_Opened_App | source* |
|
||||
|
||||
* `source`: The method used to open Fenix (For exmaple: `app_icon`, `custom_tab` or `link`)
|
Loading…
Reference in New Issue