Skip to content

feat(nimbus): fetch and store enrollment funnel data alongside monitoring alerts#15735

Merged
yashikakhurana merged 7 commits into
mainfrom
15519
May 27, 2026
Merged

feat(nimbus): fetch and store enrollment funnel data alongside monitoring alerts#15735
yashikakhurana merged 7 commits into
mainfrom
15519

Conversation

@yashikakhurana
Copy link
Copy Markdown
Contributor

@yashikakhurana yashikakhurana commented May 27, 2026

Because

  • we want to fetch the enrollment funnel data to show users the funnel enrollment/unenerollment related data

This commit

  • Adds get_enrollment_funnel_data() to jetstream/client.py to load enrollment_funnel_v1_latest.json from GCS
  • Extends fetch_monitoring_data() to fetch funnel data and merge it into NimbusExperiment.monitoring_data under the enrollment_funnel key alongside existing alert data

Fixes #15519

Yashika Khurana added 2 commits May 26, 2026 15:18
…ring alerts (EXP-6872)

Extends fetch_monitoring_data task to also pull enrollment_funnel_v1_latest.json
from GCS and merge per-experiment funnel rows into monitoring_data["enrollment_funnel"].
Funnel fetch failures are handled gracefully (warning log, defaults to empty list)
so alert data continues to save even when funnel data is unavailable.
@yashikakhurana yashikakhurana changed the title feat(nimbus): fetch and store enrollment funnel data alongside monitoring alerts (EXP-6872) feat(nimbus): fetch and store enrollment funnel data alongside monitoring alerts May 27, 2026
Comment thread experimenter/experimenter/jetstream/tests/test_tasks.py Outdated
Comment thread experimenter/experimenter/jetstream/client.py
"enrollment_funnel": funnel_by_slug.get(exp_slug, []),
}

if experiment.monitoring_data != merged:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can call save with only_fields=("monitoring_data", "monitoring_data_updated_at") to limit the DB update

@yashikakhurana yashikakhurana enabled auto-merge May 27, 2026 15:47
@yashikakhurana yashikakhurana added this pull request to the merge queue May 27, 2026
Merged via the queue into main with commit 56a4b7b May 27, 2026
26 checks passed
@yashikakhurana yashikakhurana deleted the 15519 branch May 27, 2026 16:43
def get_enrollment_funnel_data():
filename = "enrollment_funnel_v1_latest.json"
path = Path(ENROLLMENT_COUNTS_FOLDER, filename)
return load_data_from_gcs(str(path))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got distracted by a meeting partway through reviewing this, so I'll just leave a quick comment for posterity: This is another spot where it'd be nice to have the data defined in the schemas package so we can validate it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💯 we should definitely do schema validation, I will add that in the ticket

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Experimenter ingestion: extend existing monitoring data with funnel rollup

3 participants