From c652cb2d1de86f702c9e545dc042645e23ff1eb8 Mon Sep 17 00:00:00 2001 From: Gabe Mulley Date: Mon, 7 Sep 2015 18:00:38 -0400 Subject: [PATCH 1/2] Fix order of tracking backends --- cms/envs/aws.py | 4 ++-- cms/envs/common.py | 4 ++-- lms/envs/acceptance.py | 2 +- lms/envs/aws.py | 4 ++-- lms/envs/common.py | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cms/envs/aws.py b/cms/envs/aws.py index 84d8947fbf..af8a8008c4 100644 --- a/cms/envs/aws.py +++ b/cms/envs/aws.py @@ -293,8 +293,8 @@ BROKER_URL = "{0}://{1}:{2}@{3}/{4}".format(CELERY_BROKER_TRANSPORT, # Event tracking TRACKING_BACKENDS.update(AUTH_TOKENS.get("TRACKING_BACKENDS", {})) -EVENT_TRACKING_BACKENDS['tracking_logs']['OPTIONS']['backends'].update(AUTH_TOKENS.get("EVENT_TRACKING_BACKENDS", {})) -EVENT_TRACKING_BACKENDS['segmentio']['OPTIONS']['processors'][0]['OPTIONS']['whitelist'].extend( +EVENT_TRACKING_BACKENDS['0_tracking_logs']['OPTIONS']['backends'].update(AUTH_TOKENS.get("EVENT_TRACKING_BACKENDS", {})) +EVENT_TRACKING_BACKENDS['1_segmentio']['OPTIONS']['processors'][0]['OPTIONS']['whitelist'].extend( AUTH_TOKENS.get("EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST", [])) SUBDOMAIN_BRANDING = ENV_TOKENS.get('SUBDOMAIN_BRANDING', {}) diff --git a/cms/envs/common.py b/cms/envs/common.py index 25ae0c4250..f2b1ff5d0e 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -816,7 +816,7 @@ TRACKING_IGNORE_URL_PATTERNS = [r'^/event', r'^/login', r'^/heartbeat'] EVENT_TRACKING_ENABLED = True EVENT_TRACKING_BACKENDS = { - 'tracking_logs': { + '0_tracking_logs': { 'ENGINE': 'eventtracking.backends.routing.RoutingBackend', 'OPTIONS': { 'backends': { @@ -834,7 +834,7 @@ EVENT_TRACKING_BACKENDS = { ] } }, - 'segmentio': { + '1_segmentio': { 'ENGINE': 'eventtracking.backends.routing.RoutingBackend', 'OPTIONS': { 'backends': { diff --git a/lms/envs/acceptance.py b/lms/envs/acceptance.py index 53fae641c5..ad32746373 100644 --- a/lms/envs/acceptance.py +++ b/lms/envs/acceptance.py @@ -80,7 +80,7 @@ TRACKING_BACKENDS.update({ } }) -EVENT_TRACKING_BACKENDS['tracking_logs']['OPTIONS']['backends'].update({ +EVENT_TRACKING_BACKENDS['0_tracking_logs']['OPTIONS']['backends'].update({ 'mongo': { 'ENGINE': 'eventtracking.backends.mongodb.MongoBackend', 'OPTIONS': { diff --git a/lms/envs/aws.py b/lms/envs/aws.py index d9cf8c9854..4ecd8dcd45 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -489,8 +489,8 @@ STUDENT_FILEUPLOAD_MAX_SIZE = ENV_TOKENS.get("STUDENT_FILEUPLOAD_MAX_SIZE", STUD # Event tracking TRACKING_BACKENDS.update(AUTH_TOKENS.get("TRACKING_BACKENDS", {})) -EVENT_TRACKING_BACKENDS['tracking_logs']['OPTIONS']['backends'].update(AUTH_TOKENS.get("EVENT_TRACKING_BACKENDS", {})) -EVENT_TRACKING_BACKENDS['segmentio']['OPTIONS']['processors'][0]['OPTIONS']['whitelist'].extend( +EVENT_TRACKING_BACKENDS['0_tracking_logs']['OPTIONS']['backends'].update(AUTH_TOKENS.get("EVENT_TRACKING_BACKENDS", {})) +EVENT_TRACKING_BACKENDS['1_segmentio']['OPTIONS']['processors'][0]['OPTIONS']['whitelist'].extend( AUTH_TOKENS.get("EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST", [])) TRACKING_SEGMENTIO_WEBHOOK_SECRET = AUTH_TOKENS.get( "TRACKING_SEGMENTIO_WEBHOOK_SECRET", diff --git a/lms/envs/common.py b/lms/envs/common.py index c1ebcfbb04..d63d4d0d49 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -630,7 +630,7 @@ TRACKING_IGNORE_URL_PATTERNS = [r'^/event', r'^/login', r'^/heartbeat', r'^/segm EVENT_TRACKING_ENABLED = True EVENT_TRACKING_BACKENDS = { - 'tracking_logs': { + '0_tracking_logs': { 'ENGINE': 'eventtracking.backends.routing.RoutingBackend', 'OPTIONS': { 'backends': { @@ -648,7 +648,7 @@ EVENT_TRACKING_BACKENDS = { ] } }, - 'segmentio': { + '1_segmentio': { 'ENGINE': 'eventtracking.backends.routing.RoutingBackend', 'OPTIONS': { 'backends': { From ab6e76c19b59aa078dccb62de0490518790dcaf2 Mon Sep 17 00:00:00 2001 From: Gabe Mulley Date: Tue, 8 Sep 2015 09:45:43 -0400 Subject: [PATCH 2/2] Add in a comment describing the reasoning for the names --- cms/envs/common.py | 4 ++++ lms/envs/common.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/cms/envs/common.py b/cms/envs/common.py index f2b1ff5d0e..ffc19bb096 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -815,6 +815,10 @@ TRACKING_BACKENDS = { TRACKING_IGNORE_URL_PATTERNS = [r'^/event', r'^/login', r'^/heartbeat'] EVENT_TRACKING_ENABLED = True + +# NOTE: the sort order of the backend names is important here, the events will be sent to the backends in sorted +# order. In this case a processor modifies the event in a way that is only intended to be seen by segment.io, so +# we want to make sure that backend and processor is run *after* the event has been sent to the tracking logs. EVENT_TRACKING_BACKENDS = { '0_tracking_logs': { 'ENGINE': 'eventtracking.backends.routing.RoutingBackend', diff --git a/lms/envs/common.py b/lms/envs/common.py index d63d4d0d49..8171182cdc 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -629,6 +629,10 @@ TRACKING_BACKENDS = { TRACKING_IGNORE_URL_PATTERNS = [r'^/event', r'^/login', r'^/heartbeat', r'^/segmentio/event', r'^/performance'] EVENT_TRACKING_ENABLED = True + +# NOTE: the sort order of the backend names is important here, the events will be sent to the backends in sorted +# order. In this case a processor modifies the event in a way that is only intended to be seen by segment.io, so +# we want to make sure that backend and processor is run *after* the event has been sent to the tracking logs. EVENT_TRACKING_BACKENDS = { '0_tracking_logs': { 'ENGINE': 'eventtracking.backends.routing.RoutingBackend',