Merge pull request #3158 from cpennington/enrollment-metrics
Emit datadog events for all course enrollments, not just those outside of verified courses
This commit is contained in:
@@ -18,6 +18,7 @@ import logging
|
||||
from pytz import UTC
|
||||
import uuid
|
||||
from collections import defaultdict
|
||||
from dogapi import dog_stats_api
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
@@ -36,6 +37,8 @@ from track.views import server_track
|
||||
from eventtracking import tracker
|
||||
from importlib import import_module
|
||||
|
||||
from xmodule.modulestore import Location
|
||||
|
||||
from course_modes.models import CourseMode
|
||||
import lms.lib.comment_client as cc
|
||||
from util.query import use_read_replica_if_available
|
||||
@@ -496,12 +499,31 @@ class CourseEnrollment(models.Model):
|
||||
if activation_changed or mode_changed:
|
||||
self.save()
|
||||
if activation_changed:
|
||||
course_id_dict = Location.parse_course_id(self.course_id)
|
||||
if self.is_active:
|
||||
self.emit_event(EVENT_NAME_ENROLLMENT_ACTIVATED)
|
||||
|
||||
dog_stats_api.increment(
|
||||
"common.student.enrollment",
|
||||
tags=[u"org:{org}".format(**course_id_dict),
|
||||
u"course:{course}".format(**course_id_dict),
|
||||
u"run:{name}".format(**course_id_dict),
|
||||
u"mode:{}".format(self.mode)]
|
||||
)
|
||||
|
||||
else:
|
||||
unenroll_done.send(sender=None, course_enrollment=self)
|
||||
|
||||
self.emit_event(EVENT_NAME_ENROLLMENT_DEACTIVATED)
|
||||
|
||||
dog_stats_api.increment(
|
||||
"common.student.unenrollment",
|
||||
tags=[u"org:{org}".format(**course_id_dict),
|
||||
u"course:{course}".format(**course_id_dict),
|
||||
u"run:{name}".format(**course_id_dict),
|
||||
u"mode:{}".format(self.mode)]
|
||||
)
|
||||
|
||||
def emit_event(self, event_name):
|
||||
"""
|
||||
Emits an event to explicitly track course enrollment and unenrollment.
|
||||
|
||||
@@ -609,15 +609,6 @@ def change_enrollment(request):
|
||||
)
|
||||
|
||||
current_mode = available_modes[0]
|
||||
|
||||
course_id_dict = Location.parse_course_id(course_id)
|
||||
dog_stats_api.increment(
|
||||
"common.student.enrollment",
|
||||
tags=[u"org:{org}".format(**course_id_dict),
|
||||
u"course:{course}".format(**course_id_dict),
|
||||
u"run:{name}".format(**course_id_dict)]
|
||||
)
|
||||
|
||||
CourseEnrollment.enroll(user, course.id, mode=current_mode.slug)
|
||||
|
||||
return HttpResponse()
|
||||
@@ -639,13 +630,6 @@ def change_enrollment(request):
|
||||
if not CourseEnrollment.is_enrolled(user, course_id):
|
||||
return HttpResponseBadRequest(_("You are not enrolled in this course"))
|
||||
CourseEnrollment.unenroll(user, course_id)
|
||||
course_id_dict = Location.parse_course_id(course_id)
|
||||
dog_stats_api.increment(
|
||||
"common.student.unenrollment",
|
||||
tags=[u"org:{org}".format(**course_id_dict),
|
||||
u"course:{course}".format(**course_id_dict),
|
||||
u"run:{name}".format(**course_id_dict)]
|
||||
)
|
||||
return HttpResponse()
|
||||
else:
|
||||
return HttpResponseBadRequest(_("Enrollment action is invalid"))
|
||||
|
||||
Reference in New Issue
Block a user