late-teacher-86348
08/15/2021, 1:35 PMfuture-teacher-7046
early-tent-72446
08/25/2021, 7:57 AMSELECT
*
FROM
__variations
WHERE
-- Skip experiments with fewer than 200 users since they don't have enough data
users > 200 -- Skip experiments that are 5 days or shorter (most likely means it was stopped early)
AND datediff(day, start_date, end_date) > 5 -- Skip experiments that start of the very first day since we're likely missing data
AND datediff(day, '2020-08-24 18:53:16', start_date) > 2
ORDER BY
experiment_id ASC,
variation_id ASC
while this filter AND datediff(day, start_date, end_date) > 5
makes sense in general, it excludes some important edge cases, e.g.
1. Dates filter: imagine an email experiment where different versions of the email go on the same day to the users. The datediff(day, start_date, end_date) > 5
will make this experiment impossible to analyze using Growthbook because in this case start_date = end_date ("experiment_view" event happens on the same day for everyone)
2. Imagine an experiment on an event-specific webpage (e.g. convention etc.) - same problem with all experiment exposures on the single day here
Suggestion - can the values for these filters be made as optional parameters in the config.yml
? Smth like minimum_days = 6
by defaultplain-lizard-13513
09/03/2021, 4:47 PM0
and 0
is a good thing - and its just complaining i don't have a variation 1
yetfuture-teacher-7046
plain-lizard-13513
09/04/2021, 8:07 AMplain-lizard-13513
09/08/2021, 2:23 PMfull-planet-54859
09/09/2021, 4:52 PMearly-tent-72446
09/17/2021, 8:03 AMearly-tent-72446
09/17/2021, 8:16 AMeager-dream-66020
09/21/2021, 10:33 AMgentle-australia-15930
10/07/2021, 11:26 AMgentle-australia-15930
10/07/2021, 11:29 AMfaint-airplane-8152
10/23/2021, 3:27 AMlimited-motherboard-39679
10/27/2021, 4:14 PMorange-train-515
01/13/2022, 12:06 PMhappy-area-35381
01/15/2022, 4:11 PMmodern-magazine-29646
01/19/2022, 11:49 AMminiature-france-97575
01/19/2022, 5:36 PMnginx-ingress
and cert-manager
- just sharing here
apiVersion: apps/v1
kind: Deployment
metadata:
name: growthbook-web
labels:
app: growthbook-web
spec:
replicas: 1
selector:
matchLabels:
app: growthbook-web
template:
metadata:
labels:
app: growthbook-web
spec:
containers:
- name: growthbook-web
image: growthbook/growthbook:latest
env:
- name: APP_ORIGIN
value: <https://growthbook>.<DOMAIN_NAME>
- name: API_HOST
value: <https://growthbook-api>.<DOMAIN_NAME>
- name: MONGODB_URI
value: <mongodb://root:password@growthbook-mongo.default:27017>
ports:
- containerPort: 3000
name: web
- containerPort: 3100
name: api
---
apiVersion: v1
kind: Service
metadata:
name: growthbook-web
spec:
ports:
- name: web
port: 3000
targetPort: 3000
- name: api
port: 3100
targetPort: 3100
selector:
app: growthbook-web
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: growthbook-mongo
labels:
app: growthbook-mongo
spec:
replicas: 1
selector:
matchLabels:
app: growthbook-mongo
template:
metadata:
labels:
app: growthbook-mongo
spec:
containers:
- name: growthbook-mongo
image: mongo:latest
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: root
- name: MONGO_INITDB_ROOT_PASSWORD
value: password
ports:
- containerPort: 27017
---
apiVersion: v1
kind: Service
metadata:
name: growthbook-mongo
spec:
ports:
- name: web
port: 27017
targetPort: 27017
selector:
app: growthbook-mongo
type: ClusterIP
---
apiVersion: <http://networking.k8s.io/v1|networking.k8s.io/v1>
kind: Ingress
metadata:
annotations:
<http://cert-manager.io/cluster-issuer|cert-manager.io/cluster-issuer>: letsencrypt
<http://nginx.ingress.kubernetes.io/proxy-connect-timeout|nginx.ingress.kubernetes.io/proxy-connect-timeout>: "300"
<http://nginx.ingress.kubernetes.io/proxy-read-timeout|nginx.ingress.kubernetes.io/proxy-read-timeout>: "300"
<http://nginx.ingress.kubernetes.io/proxy-send-timeout|nginx.ingress.kubernetes.io/proxy-send-timeout>: "300"
labels:
app: growthbook-web
name: growthbook-web
spec:
ingressClassName: nginx
rules:
- host: growthbook.<DOMAIN_NAME>
http:
paths:
- backend:
service:
name: growthbook-web
port:
name: web
path: /
pathType: ImplementationSpecific
tls:
- hosts:
- growthbook.<DOMAIN_NAME>
secretName: growthbook-letsencrypt
---
apiVersion: <http://networking.k8s.io/v1|networking.k8s.io/v1>
kind: Ingress
metadata:
annotations:
<http://cert-manager.io/cluster-issuer|cert-manager.io/cluster-issuer>: letsencrypt
<http://nginx.ingress.kubernetes.io/proxy-connect-timeout|nginx.ingress.kubernetes.io/proxy-connect-timeout>: "300"
<http://nginx.ingress.kubernetes.io/proxy-read-timeout|nginx.ingress.kubernetes.io/proxy-read-timeout>: "300"
<http://nginx.ingress.kubernetes.io/proxy-send-timeout|nginx.ingress.kubernetes.io/proxy-send-timeout>: "300"
labels:
app: growthbook-api
name: growthbook-api
spec:
ingressClassName: nginx
rules:
- host: growthbook-api.<DOMAIN_NAME>
http:
paths:
- backend:
service:
name: growthbook-web
port:
name: api
path: /
pathType: ImplementationSpecific
tls:
- hosts:
- growthbook-api.<DOMAIN_NAME>
secretName: growthbook-api-letsencrypt
gorgeous-caravan-72440
01/26/2022, 3:56 PMgentle-australia-15930
01/28/2022, 11:26 AMancient-truck-93012
02/03/2022, 3:01 PMbusy-secretary-78039
02/15/2022, 4:07 PMacceptable-kangaroo-37203
02/25/2022, 5:27 PMuser_id AS user_id
for user-level metrics and company_id AS user_id
for client-level versions of metrics. But it feels hacky and I'm imagining could easily confuse non-technical users.acceptable-kangaroo-37203
02/25/2022, 5:31 PMconfig.yml
file (esp. the data source settings) - I'm imagining we'd want to back the metrics themselves in a git repo (but without secrets like what's in the data sources), and eventually I'd imagine we'd want to integrate a more general metrics layer like dbt is building.thankful-scientist-83252
03/02/2022, 1:12 AMfull-island-88199
03/03/2022, 6:57 PMlate-dentist-52023
03/04/2022, 9:25 PMthankful-scientist-83252
03/08/2022, 2:21 AMthankful-scientist-83252
03/09/2022, 6:05 PM