mitodl / odl-video-service

building blocks for a basic video service for ODL
BSD 3-Clause "New" or "Revised" License
4 stars 1 forks source link

Dependency update broke analytics api #1007

Closed mbertrand closed 1 year ago

mbertrand commented 1 year ago

Steps to Reproduce

Click "Show/Hide Analytics" button on RC

Expected Behavior

A graph of analytics data appears

Actual Behavior

Graph is blank and the analytics api returns a 500

Stacktrace

compose-app-1     | [pid: 15|app: 0|req: 17/17] 10.12.0.116 () {60 vars in 1837 bytes} [Fri Nov 18 18:50:32 2022] GET /api/v0/collections/?page=1 => generated 12335 bytes in 407 msecs (HTTP/1.1 200) 5 headers in 158 bytes (1 switches on core 9)
compose-app-1     | [2022-11-18 18:50:35] ERROR 15 [django.request] log.py:222 - [d3d00bedaf0a] - Internal Server Error: /api/v0/videos/3c142cf25d1a4933be574d2695e34338/analytics/
compose-app-1     | Traceback (most recent call last):
compose-app-1     |   File "/src/ui/utils.py", line 270, in get_google_analytics_client
compose-app-1     |     credentials = ServiceAccountCredentials.from_json_keyfile_dict(
compose-app-1     | AttributeError: type object 'Credentials' has no attribute 'from_json_keyfile_dict'
compose-app-1     |
compose-app-1     | The above exception was the direct cause of the following exception:
compose-app-1     |
compose-app-1     | Traceback (most recent call last):
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 34, in inner
compose-app-1     |     response = get_response(request)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 115, in _get_response
compose-app-1     |     response = self.process_exception_by_middleware(e, request)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 113, in _get_response
compose-app-1     |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
compose-app-1     |     return view_func(*args, **kwargs)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/viewsets.py", line 114, in view
compose-app-1     |     return self.dispatch(request, *args, **kwargs)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 505, in dispatch
compose-app-1     |     response = self.handle_exception(exc)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 465, in handle_exception
compose-app-1     |     self.raise_uncaught_exception(exc)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 476, in raise_uncaught_exception
compose-app-1     |     raise exc
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 502, in dispatch
compose-app-1     |     response = handler(request, *args, **kwargs)
compose-app-1     |   File "/src/ui/views.py", line 433, in analytics
compose-app-1     |     data = get_video_analytics(video)
compose-app-1     |   File "/src/ui/utils.py", line 251, in get_video_analytics
compose-app-1     |     ga_client = get_google_analytics_client()
compose-app-1     |   File "/src/ui/utils.py", line 276, in get_google_analytics_client
compose-app-1     |     raise GoogleAnalyticsException(
compose-app-1     | ui.exceptions.GoogleAnalyticsException: Something went wrong with creating a GoogleAnaltics client
compose-app-1     | [2022-11-18 18:50:35] ERROR 15 [django.request] log.py:222 - [d3d00bedaf0a] - Internal Server Error: /api/v0/videos/3c142cf25d1a4933be574d2695e34338/analytics/
compose-app-1     | Traceback (most recent call last):
compose-app-1     |   File "/src/ui/utils.py", line 270, in get_google_analytics_client
compose-app-1     |     credentials = ServiceAccountCredentials.from_json_keyfile_dict(
compose-app-1     | AttributeError: type object 'Credentials' has no attribute 'from_json_keyfile_dict'
compose-app-1     |
compose-app-1     | The above exception was the direct cause of the following exception:
compose-app-1     |
compose-app-1     | Traceback (most recent call last):
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 34, in inner
compose-app-1     |     response = get_response(request)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 115, in _get_response
compose-app-1     |     response = self.process_exception_by_middleware(e, request)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 113, in _get_response
compose-app-1     |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
compose-app-1     |     return view_func(*args, **kwargs)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/viewsets.py", line 114, in view
compose-app-1     |     return self.dispatch(request, *args, **kwargs)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 505, in dispatch
compose-app-1     |     response = self.handle_exception(exc)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 465, in handle_exception
compose-app-1     |     self.raise_uncaught_exception(exc)
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 476, in raise_uncaught_exception
compose-app-1     |     raise exc
compose-app-1     |   File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 502, in dispatch
compose-app-1     |     response = handler(request, *args, **kwargs)
compose-app-1     |   File "/src/ui/views.py", line 433, in analytics
compose-app-1     |     data = get_video_analytics(video)
compose-app-1     |   File "/src/ui/utils.py", line 251, in get_video_analytics
compose-nginx-1   | nginx-access 10.12.0.116 - - [18/Nov/2022:18:50:35 +0000] "GET /api/v0/videos/3c142cf25d1a4933be574d2695e34338/analytics/ HTTP/1.1" 500 1418 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:107.0) Gecko/20100101 Firefox/107.0" "159.250.226.9"
compose-app-1     |     ga_client = get_google_analytics_client()
compose-app-1     |   File "/src/ui/utils.py", line 276, in get_google_analytics_client
compose-app-1     |     raise GoogleAnalyticsException(
compose-app-1     | ui.exceptions.GoogleAnalyticsException: Something went wrong with creating a GoogleAnaltics client
mbertrand commented 1 year ago

https://github.com/googleapis/google-auth-library-python/issues/288