Jump to content

Data Platform/Systems/Growthbook

From Wikitech

We run an instance of GrowthBook intended to facilitate the following aspects of Wikimedia's experimentation platform Test Kitchen:

  • Configuration of experiments, replacing Test Kitchen User Interface (TK UI).
  • Analysis of experiments, replacing Test Kitchen Automated Analytics (TK AA).

The instance is self-hosted and uses FerretDB (open source MongoDB alternative) for data storage.

Readiness checklist

Paste the following into a Phabricator task for updating/upgrading:

Staging:

[ ] Loads, can log in
[ ] Connections still work (Data Source > Presto Analytics Test Hive|Iceberg > View SQL Explorer)
  [ ] Can query `SELECT 1` in Presto Analytics Test Hive
  [ ] Can query `SELECT 1` in Presto Analytics Test Iceberg
[ ] No requests to third parties introduced (use Network tab in your browser's Developer Tools to verify)

Production:

[ ] Any currently running experiment's results are successfully refreshed (use Update button)

Mainly this helps us verify that the new build still works with our setup which uses the Presto connector with Kerberos authentication.

Instances

growthbook-next
Attribute Value
Owner DPE SRE
Kubernetes Cluster dse-k8s-eqiad
Kubernetes Namespace growthbook-next
Chart https://gerrit.wikimedia.org/r/plugins/gitiles/operations/deployment-charts/+/master/charts/growthbook
Helmfiles https://gerrit.wikimedia.org/r/plugins/gitiles/operations/deployment-charts/+/master/helmfile.d/dse-k8s-services/growthbook-next/helmfile.yaml
Docker image https://gitlab.wikimedia.org/repos/data-engineering/growthbook/
Internal service DNS growthbook-next.discovery.wmnet
Public service URL https://growthbook-next.wikimedia.org
Logs {{{logsUrl}}}
Metrics {{{metricsDashboardUrl}}}
Monitors {{{monitorsUrl}}}
Application documentation https://docs.growthbook.io/
Paging false
Deployment Phabricator ticket https://phabricator.wikimedia.org/T405749


growthbook
Attribute Value
Owner DPE SRE
Kubernetes Cluster dse-k8s-eqiad
Kubernetes Namespace growthbook
Chart https://gerrit.wikimedia.org/r/plugins/gitiles/operations/deployment-charts/+/master/charts/growthbook
Helmfiles https://gerrit.wikimedia.org/r/plugins/gitiles/operations/deployment-charts/+/master/helmfile.d/dse-k8s-services/growthbook/helmfile.yaml
Docker image https://gitlab.wikimedia.org/repos/data-engineering/growthbook/
Internal service DNS growthbook.discovery.wmnet
Public service URL https://growthbook.wikimedia.org
Logs {{{logsUrl}}}
Metrics {{{metricsDashboardUrl}}}
Monitors {{{monitorsUrl}}}
Application documentation https://docs.growthbook.io/
Paging false
Deployment Phabricator ticket https://phabricator.wikimedia.org/T405749


Requesting Access

Our GrowthBook installations work with 3 distinct levels of access, mapped to 3 distinct LDAP groups:

LDAP group GrowthBook Role Description
growthbook-readonly Read Only Can only observe data and experiments in a read-only fashion. This would be the bulk of user seats, and is the default role.
growhtbook-customelevatedaccess CustomElevatedAccess Meant for people who need to drive experiment and data analysis configuration. It's expected this will usually be A/B test fluent people with software/data/research engineer/scientist/analyst titles
growthbook-admin Admin Full R/W access to all growthbook features and settings

Note: the Read Only and Admin roles are directly defined in Growthbook upstream and associated permissions are detailed here https://docs.growthbook.io/account/user-permissions#permissions.

The CustomElevatedAccess role has all of the Read Only permissions and the following permissions:

Experiments Full Access
Create, edit, and delete experiments
Run Queries
Execute queries against data sources. Required to refresh experiment results. Does not include SQL Explorer access.
Metrics Full Access
Create, edit, and delete regular metrics (does not include Fact Metrics)
Fact Tables Full Access
Create, edit, and delete fact tables, metrics, and filters.
Fact Metrics Full Access
Create, edit, and delete fact metrics and filters.
Tags Full Access
Create, edit, and delete tags

To get access to either of these roles, a user should go to https://idm.wikimedia.org/permissions and request access. A member of Experiment Platform Team (or other GrowthBook Admin if no Experiment Platform Team member is available) will review the request.

Operations