From 56cfe2b7332630c96fab8b2edb7e1dbd556ef310 Mon Sep 17 00:00:00 2001 From: edwin yue <53625790+edwaddle@users.noreply.github.com> Date: Wed, 30 Jul 2025 00:14:18 -0700 Subject: [PATCH 1/4] created new metric 'download_rate_sum' Uses prometheus's histogram --- modules/cache.py | 6 ++++++ modules/metrics.py | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/cache.py b/modules/cache.py index 326d1d8..706a8bd 100644 --- a/modules/cache.py +++ b/modules/cache.py @@ -4,6 +4,7 @@ import os import uuid import json +import time from pytubefix import YouTube @@ -58,8 +59,10 @@ def add(self, url: str): MetricsHandler.cache_size.set(len(self.video_id_to_path)) MetricsHandler.cache_size_bytes.set(self.current_size_bytes) video_file_name = video.default_filename + start_time = time.time() with MetricsHandler.download_time.time(): video.download(self.file_path) + end_time = time.time() MetricsHandler.data_downloaded.inc(video.filesize) MetricsHandler.video_download_count.inc() video_id = self.get_video_id(url) @@ -80,6 +83,9 @@ def add(self, url: str): self.current_size_bytes += video_info.size_bytes MetricsHandler.cache_size.set(len(self.video_id_to_path)) MetricsHandler.cache_size_bytes.set(self.current_size_bytes) + #download rate are currently listed in bytes / second + download_rate = (video.filesize / (end_time-start_time)) + MetricsHandler.download_rate.observe(download_rate) def find(self, video_id: str): if video_id in self.video_id_to_path: diff --git a/modules/metrics.py b/modules/metrics.py index 20fbd8c..1a87c4d 100644 --- a/modules/metrics.py +++ b/modules/metrics.py @@ -30,6 +30,12 @@ class Metrics(enum.Enum): prometheus_client.Summary, ) + DOWNLOAD_RATE = ( + "download_rate", + "The rate of downloading videos in bytes per seconds", + prometheus_client.Histogram, + ) + DATA_DOWNLOADED = ( "data_downloaded", "Total video data downloaded in bytes", @@ -100,4 +106,4 @@ def init(self) -> None: metric.prometheus_type( metric.title, metric.description, labelnames=metric.labels ), - ) + ) \ No newline at end of file From 5552e92c39f059cf70266175b867c66d81927ea6 Mon Sep 17 00:00:00 2001 From: edwin yue <53625790+edwaddle@users.noreply.github.com> Date: Wed, 30 Jul 2025 00:17:58 -0700 Subject: [PATCH 2/4] spacing changes From d7869f572c2cc01dfb04af2b948c8d8ca6ce8f9e Mon Sep 17 00:00:00 2001 From: edwin yue <53625790+edwaddle@users.noreply.github.com> Date: Wed, 30 Jul 2025 00:22:35 -0700 Subject: [PATCH 3/4] added blank line --- modules/metrics.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/metrics.py b/modules/metrics.py index 1a87c4d..60876e2 100644 --- a/modules/metrics.py +++ b/modules/metrics.py @@ -106,4 +106,5 @@ def init(self) -> None: metric.prometheus_type( metric.title, metric.description, labelnames=metric.labels ), - ) \ No newline at end of file + ) + \ No newline at end of file From 2bcaf04560e863fcea7fc88ca0bb2fccdfaeb933 Mon Sep 17 00:00:00 2001 From: edwin yue <53625790+edwaddle@users.noreply.github.com> Date: Wed, 30 Jul 2025 00:25:25 -0700 Subject: [PATCH 4/4] deleted spacing --- modules/metrics.py | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/metrics.py b/modules/metrics.py index 60876e2..ae99988 100644 --- a/modules/metrics.py +++ b/modules/metrics.py @@ -107,4 +107,3 @@ def init(self) -> None: metric.title, metric.description, labelnames=metric.labels ), ) - \ No newline at end of file