Optimization: selecting a single segment, e.g. "Mac", still appears to lead to queries against all platforms
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 42/100
Research direction
Start by tracing how the YAML segments value is handled when generating the BigQuery query shown in the logs, especially the desktop_data and android_data branches. Compare the requested Mac segment with the query's normalized_os segment and verify that the completed change restricts results to the intended platform instead of querying Fenix and all desktop platforms.
Written by the indexing model from the issue text.
Description
Using this configuration, only looking at Mac:
slug: fast-udp-for-firefox-large-release-experiment
segments:
- Mac
histograms:
metrics.custom_distribution.networking_http_1_upload_throughput:
higher_is_better: true
metrics.custom_distribution.networking_http_2_upload_throughput:
higher_is_better: true
metrics.custom_distribution.networking_http_3_upload_throughput:
higher_is_better: true
The queries appear to be made against Fenix and all off Desktop.
I was expecting a Darwin filter or similar.
Logs:
Using Config:
{
"slug": "fast-udp-for-firefox-large-release-experiment",
"segments": [
"Mac"
],
"histograms": {
"metrics.custom_distribution.networking_http_1_upload_throughput": {
"higher_is_better": true,
"glean": true,
"desc": "The upload throughput for http/1.0, http/1.1 requests larger than 10MB. Measured in megabits per second, Mbps.\n",
"available_on_desktop": true,
"available_on_android": true,
"kind": "numerical",
"distribution_type": "custom_distribution",
"max": 5000
},
"metrics.custom_distribution.networking_http_2_upload_throughput": {
"higher_is_better": true,
"glean": true,
"desc": "The upload throughput for http/2 requests larger than 10MB. Measured in megabits per second, Mbps.\n",
"available_on_desktop": true,
"available_on_android": true,
"kind": "numerical",
"distribution_type": "custom_distribution",
"max": 5000
},
"metrics.custom_distribution.networking_http_3_upload_throughput": {
"higher_is_better": true,
"glean": true,
"desc": "The upload throughput for http/3 requests larger than 10MB. Measured in megabits per second, Mbps.\n",
"available_on_desktop": true,
"available_on_android": true,
"kind": "numerical",
"distribution_type": "custom_distribution",
"max": 5000
}
},
"is_experiment": true,
"pageload_event_metrics": {},
"crash_event_metrics": {},
"startDate": "2025-08-20",
"endDate": "2025-10-02",
"channel": "release",
"isRollout": false,
"branches": [
{
"name": "control-nspr"
},
{
"name": "treatment-fast-udp"
}
],
"include_non_enrolled_branch": false
}
Running 3 queries in parallel using 4 threads...
Running query:
with
desktop_data as (
SELECT
normalized_os as segment,
mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch as branch,
CAST(key as INT64) AS bucket,
value as count
FROM `mozdata.firefox_desktop.metrics` as d
CROSS JOIN UNNEST(metrics.custom_distribution.networking_http_2_upload_throughput.values)
WHERE
DATE(submission_timestamp) >= DATE('2025-08-20')
AND DATE(submission_timestamp) <= DATE('2025-10-02')
AND normalized_channel = "release"
AND normalized_app_name = "Firefox"
AND metrics.custom_distribution.networking_http_2_upload_throughput is not null
AND ARRAY_LENGTH(ping_info.experiments) > 0
AND mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch is not null
),
android_data as (
SELECT
normalized_os as segment,
mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch as branch,
CAST(key as INT64) AS bucket,
value as count
FROM `mozdata.fenix.metrics` as f
CROSS JOIN UNNEST(metrics.custom_distribution.networking_http_2_upload_throughput.values)
WHERE
DATE(submission_timestamp) >= DATE('2025-08-20')
AND DATE(submission_timestamp) <= DATE('2025-10-02')
AND normalized_channel = "release"
AND metrics.custom_distribution.networking_http_2_upload_throughput is not null
AND ARRAY_LENGTH(ping_info.experiments) > 0
AND mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch is not null
)
SELECT
segment,
branch,
bucket,
SUM(count) as counts
FROM
(
SELECT * FROM desktop_data
UNION ALL
SELECT * FROM android_data
) s
GROUP BY
segment, branch, bucket
ORDER BY
segment, branch, bucket
Running query:
with
desktop_data as (
SELECT
normalized_os as segment,
mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch as branch,
CAST(key as INT64) AS bucket,
value as count
FROM `mozdata.firefox_desktop.metrics` as d
CROSS JOIN UNNEST(metrics.custom_distribution.networking_http_1_upload_throughput.values)
WHERE
DATE(submission_timestamp) >= DATE('2025-08-20')
AND DATE(submission_timestamp) <= DATE('2025-10-02')
AND normalized_channel = "release"
AND normalized_app_name = "Firefox"
AND metrics.custom_distribution.networking_http_1_upload_throughput is not null
AND ARRAY_LENGTH(ping_info.experiments) > 0
AND mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch is not null
),
android_data as (
SELECT
normalized_os as segment,
mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch as branch,
CAST(key as INT64) AS bucket,
value as count
FROM `mozdata.fenix.metrics` as f
CROSS JOIN UNNEST(metrics.custom_distribution.networking_http_1_upload_throughput.values)
WHERE
DATE(submission_timestamp) >= DATE('2025-08-20')
AND DATE(submission_timestamp) <= DATE('2025-10-02')
AND normalized_channel = "release"
AND metrics.custom_distribution.networking_http_1_upload_throughput is not null
AND ARRAY_LENGTH(ping_info.experiments) > 0
AND mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch is not null
)
SELECT
segment,
branch,
bucket,
SUM(count) as counts
FROM
(
SELECT * FROM desktop_data
UNION ALL
SELECT * FROM android_data
) s
GROUP BY
segment, branch, bucket
ORDER BY
segment, branch, bucketRunning query:
with
desktop_data as (
SELECT
normalized_os as segment,
mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch as branch,
CAST(key as INT64) AS bucket,
value as count
FROM `mozdata.firefox_desktop.metrics` as d
CROSS JOIN UNNEST(metrics.custom_distribution.networking_http_3_upload_throughput.values)
WHERE
DATE(submission_timestamp) >= DATE('2025-08-20')
AND DATE(submission_timestamp) <= DATE('2025-10-02')
AND normalized_channel = "release"
AND normalized_app_name = "Firefox"
AND metrics.custom_distribution.networking_http_3_upload_throughput is not null
AND ARRAY_LENGTH(ping_info.experiments) > 0
AND mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch is not null
),
android_data as (
SELECT
normalized_os as segment,
mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch as branch,
CAST(key as INT64) AS bucket,
value as count
FROM `mozdata.fenix.metrics` as f
CROSS JOIN UNNEST(metrics.custom_distribution.networking_http_3_upload_throughput.values)
WHERE
DATE(submission_timestamp) >= DATE('2025-08-20')
AND DATE(submission_timestamp) <= DATE('2025-10-02')
AND normalized_channel = "release"
AND metrics.custom_distribution.networking_http_3_upload_throughput is not null
AND ARRAY_LENGTH(ping_info.experiments) > 0
AND mozfun.map.get_key(ping_info.experiments, "fast-udp-for-firefox-large-release-experiment").branch is not null
)
SELECT
segment,
branch,
bucket,
SUM(count) as counts
FROM
(
- Dominant language
- Python
- Stars
- 1
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
TencentCloud/Octop#1577 · 1 comment ·
Maintainers usually reply within 1 day
-
bug frontend
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
PedestrianDynamics/pyFDS-Evac#552 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
resend/resend-skills#144 ·
Maintainers usually reply within 1 day
-
good first issue
Difficulty 1/5 Under an hour Newbie friendliness 68/100