Skip to content

Commit

Permalink
Added analytics tracking of throttled providers
Browse files Browse the repository at this point in the history
  • Loading branch information
morpheus65535 committed Sep 8, 2023
1 parent 85d300f commit 3694254
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
3 changes: 3 additions & 0 deletions bazarr/app/get_providers.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from utilities.binaries import get_binary
from radarr.blacklist import blacklist_log_movie
from sonarr.blacklist import blacklist_log
from utilities.analytics import event_tracker


def time_until_midnight(timezone):
Expand Down Expand Up @@ -344,6 +345,8 @@ def provider_throttle(name, exception):
logging.info("Throttling %s for %s, until %s, because of: %s. Exception info: %r", name,
throttle_description, throttle_until.strftime("%y/%m/%d %H:%M"), cls_name, exception.args[0]
if exception.args else None)
event_tracker.track_throttling(provider=name, exception_name=cls_name, exception_info=exception.args[0]
if exception.args else None)

update_throttled_provider()

Expand Down
2 changes: 1 addition & 1 deletion bazarr/subtitles/processing.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ def process_subtitle(subtitle, media_type, audio_language, path, max_score, is_u
notify_radarr(movie_metadata.radarrId)
event_stream(type='movie-wanted', action='delete', payload=movie_metadata.radarrId)

event_tracker.track(provider=downloaded_provider, action=action, language=downloaded_language)
event_tracker.track_subtitles(provider=downloaded_provider, action=action, language=downloaded_language)

return ProcessSubtitlesResult(message=message,
reversed_path=reversed_path,
Expand Down
19 changes: 18 additions & 1 deletion bazarr/utilities/analytics.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def start_tracker(self):

self.tracker.store.save()

def track(self, provider, action, language):
def track_subtitles(self, provider, action, language):
if not settings.analytics.getboolean('enabled'):
return

Expand All @@ -64,5 +64,22 @@ def track(self, provider, action, language):
else:
self.tracker.store.save()

def track_throttling(self, provider, exception_name, exception_info):
if not settings.analytics.getboolean('enabled'):
return

throttling_event = self.tracker.create_new_event(name="throttling")

throttling_event.set_event_param(name="provider", value=provider)
throttling_event.set_event_param(name="exception_name", value=exception_name)
throttling_event.set_event_param(name="exception_info", value=exception_info)

try:
self.tracker.send(events=[throttling_event])
except Exception:
logging.debug("BAZARR unable to track event.")
else:
self.tracker.store.save()


event_tracker = EventTracker()

0 comments on commit 3694254

Please sign in to comment.