opmon/firefox-messaging-system.toml (198 lines of code) (raw):
# Monitoring of Firefox Desktop's Messaging System.
[project]
name = "Firefox Desktop Messaging System"
platform = "firefox_desktop"
xaxis = "submission_date"
start_date = "2023-05-26"
# We want continuous monitoring of this data:
# end_date =
skip_default_metrics = true
compact_visualization = false
metrics = [
"client_volume",
"ping_volume",
"undesired_events_ping_volume",
"whats_new_panel_ping_volume",
"moments_ping_volume",
"infobar_ping_volume",
"spotlight_ping_volume",
"cfr_ping_volume",
"toolbar_badge_ping_volume",
"toast_notification_ping_volume",
"null_ping_volume",
"other_ping_volume",
"unknown_keys_volume",
"invalid_nested_data_volume",
]
alerts = [
"unexpected_data",
]
[project.population]
data_source = "messaging_system"
monitor_entire_population = true
dimensions = ["normalized_channel", "normalized_os"]
[project.metric_groups.ping_volume_by_ping_type]
friendly_name = "Ping Volume by Ping Type"
description = """\
The volume of 'messaging-system' pings broken down by `messaging_system.ping_type`.\
Currently supported: 'whats-new-panel', 'moments', 'infobar', 'spotlight', 'cfr', 'toolbar-badge', 'toast_notification', NULL, and 'other'.\
'undesired-event' can be found in its own plot.\
"""
metrics = [
"whats_new_panel_ping_volume",
"moments_ping_volume",
"infobar_ping_volume",
"spotlight_ping_volume",
"cfr_ping_volume",
"null_ping_volume",
"other_ping_volume",
"toolbar_badge_ping_volume",
"toast_notification_ping_volume"
]
[project.metric_groups.unexpected_data]
friendly_name = "Unexpected Data"
description = """\
The volume of unknown and invalid information received by Messaging System.\
Further information (like what the unknown/invalid information's names are) are available in the raw ping tables.\
The aim is to ensure this remains 0.
"""
metrics = [
"unknown_keys_volume",
"invalid_nested_data_volume",
]
[dimensions.normalized_channel]
data_source = "messaging_system"
select_expression = "normalized_channel"
friendly_name = "Channel"
description = "Release channel, like 'release', 'beta', 'nightly', 'esr', 'devedition'."
[dimensions.normalized_os]
data_source = "messaging_system"
select_expression = "normalized_os"
friendly_name = "Operating System"
description = "OS like 'Windows', 'Mac', 'Linux'"
[data_sources]
[data_sources.messaging_system]
from_expression = """(
SELECT *
FROM mozdata.firefox_desktop.messaging_system
WHERE
COALESCE(normalized_channel, "Other") <> "Other"
)"""
submission_date_column = "DATE(submission_timestamp)"
# Not sure that this would be helpful to include
#build_id_column = "client_info.app_build"
client_id_column = "document_id"
[metrics]
[metrics.client_volume]
friendly_name = "Client Volume"
description = """\
Count of distinct messaging_system.client_id.\
Might undercount for pings not allowed to send client_id or if the Legacy Telemetry isn't set at the time the ping is submitted.\
"""
data_source = "messaging_system"
select_expression = "COUNT(DISTINCT metrics.uuid.messaging_system_client_id)"
type = "scalar"
statistics.sum = {}
[metrics.ping_volume]
friendly_name = "Ping Volume"
description = "Count of 'messaging-system' pings received."
data_source = "messaging_system"
select_expression = "COUNT(*)"
type = "scalar"
statistics.sum = {}
[metrics.undesired_events_ping_volume]
friendly_name = "'undesired-events' pings"
description = "Count of 'messaging-system' pings with ping_type = 'undesired-events'"
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type = 'undesired-events')"
type = "scalar"
statistics.sum = {}
[metrics.whats_new_panel_ping_volume]
friendly_name = "'whats-new-panel' pings"
description = "Count of 'messaging-system' pings with ping_type = 'whats-new-panel'"
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type = 'whats-new-panel')"
type = "scalar"
statistics.sum = {}
[metrics.moments_ping_volume]
friendly_name = "'moments' pings"
description = "Count of 'messaging-system' pings with ping_type = 'moments'"
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type = 'moments')"
type = "scalar"
statistics.sum = {}
[metrics.infobar_ping_volume]
friendly_name = "'infobar' pings"
description = "Count of 'messaging-system' pings with ping_type = 'infobar'"
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type = 'infobar')"
type = "scalar"
statistics.sum = {}
[metrics.spotlight_ping_volume]
friendly_name = "'spotlight' pings"
description = "Count of 'messaging-system' pings with ping_type = 'spotlight'"
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type = 'spotlight')"
type = "scalar"
statistics.sum = {}
[metrics.cfr_ping_volume]
friendly_name = "'cfr' pings"
description = "Count of 'messaging-system' pings with ping_type = 'cfr'"
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type = 'cfr')"
type = "scalar"
statistics.sum = {}
[metrics.toolbar_badge_ping_volume]
friendly_name = "'toolbar-badge' pings"
description = "Count of 'messaging-system' pings with ping_type = 'toolbar-badge'"
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type = 'toolbar-badge')"
type = "scalar"
statistics.sum = {}
[metrics.toast_notification_ping_volume]
friendly_name = "'toast_notification' pings"
description = "Count of 'messaging-system' pings with ping_type = 'toast_notification'"
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type = 'toast_notification')"
type = "scalar"
statistics.sum = {}
[metrics.null_ping_volume]
friendly_name = "NULL pings"
description = "Count of 'messaging-system' pings with ping_type of NULL. Typical for onboarding pings."
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type IS NULL)"
type = "scalar"
statistics.sum = {}
[metrics.other_ping_volume]
friendly_name = "other pings"
description = """\
Count of 'messaging-system' pings with ping_type that isn't NULL and isn't any of the other handled types.\
If there are values in here, you probably should update the opmon config to handle that new ping_type explicitly.\
"""
data_source = "messaging_system"
select_expression = "COUNTIF(metrics.string.messaging_system_ping_type IS NOT NULL AND metrics.string.messaging_system_ping_type NOT IN ('undesired-events', 'whats-new-panel', 'moments', 'infobar', 'spotlight', 'cfr', 'toolbar-badge', 'toast_notification'))"
type = "scalar"
statistics.sum = {}
[metrics.unknown_keys_volume]
friendly_name = "unknown keys"
description = "Count of the total number of values recorded to unknown keys. See messaging_system.unknown_keys."
data_source = "messaging_system"
select_expression = "SUM(mozfun.map.extract_keyed_scalar_sum(metrics.labeled_counter.messaging_system_unknown_keys))"
type = "scalar"
statistics.sum = {}
[metrics.invalid_nested_data_volume]
friendly_name = "invalid nested data"
description = "Count of the total number of values recorded to invalidly-nested keys. See messaging_system.invalid_nested_data."
data_source = "messaging_system"
select_expression = "SUM(mozfun.map.extract_keyed_scalar_sum(metrics.labeled_counter.messaging_system_invalid_nested_data))"
type = "scalar"
statistics.sum = {}
[alerts]
[alerts.unexpected_data]
# We want to know when there's any unexpected data at all
type = "threshold"
max = [1]
metrics = [
"unknown_keys_volume",
"invalid_nested_data_volume",
]