diff --git a/daemon/media_player.c b/daemon/media_player.c index 02730a126..5b507e377 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -1186,6 +1186,7 @@ static bool media_player_play_start(struct media_player *mp, const rtp_payload_t } static void media_player_media_file_free(struct media_player_media_file *fo) { + RTPE_GAUGE_ADD(media_cache, -1 * (ssize_t) fo->blob.len); g_free(fo->blob.s); } @@ -1212,6 +1213,7 @@ static struct media_player_media_file *media_player_media_file_new(str blob) { media_player_media_file_free); fo->blob = blob; fo->blob.dup = call_ref; // string is allocated by reference on `fo` + RTPE_GAUGE_ADD(media_cache, blob.len); fo->ts = time(NULL); return fo; } diff --git a/daemon/statistics.c b/daemon/statistics.c index 0e160d433..4ae8a26ac 100644 --- a/daemon/statistics.c +++ b/daemon/statistics.c @@ -337,6 +337,8 @@ stats_metric_q *statistics_gather_metrics(struct interface_sampled_rate_stats *i METRIC("sessionstotal", "Total sessions", UINT64F, UINT64F, cur_sessions); METRIC("transcodedmedia", "Transcoded media", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_gauge.transcoded_media)); PROM("transcoded_media", "gauge"); + METRIC("mediacache", "Media cache size", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_gauge.media_cache)); + PROM("media_cache", "gauge"); METRIC("packetrate_user", "Packets per second (userspace)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.packets_user)); diff --git a/include/gauge_stats_fields.inc b/include/gauge_stats_fields.inc index ee212b8ff..53b8c3f75 100644 --- a/include/gauge_stats_fields.inc +++ b/include/gauge_stats_fields.inc @@ -7,3 +7,4 @@ F(mixed_sessions) F(userspace_streams) F(kernel_only_streams) F(kernel_user_streams) +F(media_cache) diff --git a/t/test-stats.c b/t/test-stats.c index 90acf28ce..f5161cadd 100644 --- a/t/test-stats.c +++ b/t/test-stats.c @@ -340,6 +340,10 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" + "Media cache size\n" + "mediacache\n" + "0\n" + "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" @@ -1468,6 +1472,10 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" + "Media cache size\n" + "mediacache\n" + "0\n" + "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" @@ -2593,6 +2601,10 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" + "Media cache size\n" + "mediacache\n" + "0\n" + "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" @@ -3737,6 +3749,10 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" + "Media cache size\n" + "mediacache\n" + "0\n" + "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" @@ -4870,6 +4886,10 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" + "Media cache size\n" + "mediacache\n" + "0\n" + "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" @@ -5998,6 +6018,10 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" + "Media cache size\n" + "mediacache\n" + "0\n" + "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" @@ -7128,6 +7152,10 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" + "Media cache size\n" + "mediacache\n" + "0\n" + "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n"