From aa3119e4d70dd03953f84d4122cf96f76c4f5e40 Mon Sep 17 00:00:00 2001
From: Zainab Amir <zainab.amir@arbisoft.com>
Date: Thu, 7 Jan 2021 18:08:09 +0500
Subject: [PATCH] Add new relic metrics (#26003)

---
 openedx/core/djangoapps/user_authn/views/login.py    | 9 ++++++++-
 openedx/core/djangoapps/user_authn/views/register.py | 3 +++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/openedx/core/djangoapps/user_authn/views/login.py b/openedx/core/djangoapps/user_authn/views/login.py
index 9e7a023c96f..9ce5ec70306 100644
--- a/openedx/core/djangoapps/user_authn/views/login.py
+++ b/openedx/core/djangoapps/user_authn/views/login.py
@@ -467,6 +467,8 @@ def login_user(request):
             except AuthFailedError as e:
                 set_custom_attribute('login_user_tpa_success', False)
                 set_custom_attribute('login_user_tpa_failure_msg', e.value)
+                if e.error_code:
+                    set_custom_attribute('login_error_code', e.error_code)
 
                 # user successfully authenticated with a third party provider, but has no linked Open edX account
                 response_content = e.get_response()
@@ -512,7 +514,12 @@ def login_user(request):
     except AuthFailedError as error:
         response_content = error.get_response()
         log.exception(response_content)
-        if response_content.get('error_code') == 'inactive-user':
+
+        error_code = response_content.get('error_code')
+        if error_code:
+            set_custom_attribute('login_error_code', error_code)
+
+        if error_code == 'inactive-user':
             response_content['email'] = user.email
 
         response = JsonResponse(response_content, status=400)
diff --git a/openedx/core/djangoapps/user_authn/views/register.py b/openedx/core/djangoapps/user_authn/views/register.py
index 77ed59d8b1a..6ba5d10e63c 100644
--- a/openedx/core/djangoapps/user_authn/views/register.py
+++ b/openedx/core/djangoapps/user_authn/views/register.py
@@ -21,6 +21,7 @@ from django.utils.translation import get_language
 from django.utils.translation import ugettext as _
 from django.views.decorators.csrf import csrf_exempt, ensure_csrf_cookie
 from django.views.decorators.debug import sensitive_post_parameters
+from edx_django_utils.monitoring import set_custom_attribute
 from edx_toggles.toggles import LegacyWaffleFlag, LegacyWaffleFlagNamespace
 from pytz import UTC
 from ratelimit.decorators import ratelimit
@@ -182,6 +183,8 @@ def create_account_with_params(request, params):
             ]}
         )
 
+    if is_third_party_auth_enabled:
+        set_custom_attribute('register_user_tpa', pipeline.running(request))
     extended_profile_fields = configuration_helpers.get_value('extended_profile_fields', [])
     # Can't have terms of service for certain SHIB users, like at Stanford
     registration_fields = getattr(settings, 'REGISTRATION_EXTRA_FIELDS', {})
-- 
GitLab