Track both content and cache size

This commit is contained in:
Claudio Ortolina
2025-09-20 09:49:06 +03:00
parent 68a2159d7d
commit dd09fb907b
4 changed files with 31 additions and 12 deletions
+26 -1
View File
@@ -1,7 +1,9 @@
defmodule MusicLibrary.Assets do
alias MusicLibrary.Assets.Asset
alias MusicLibrary.Assets.{Asset, Cache}
alias MusicLibrary.Repo
import Ecto.Query
@doc """
Store any file type - the responsibility to correctly populate format and
properties is left to the caller.
@@ -28,4 +30,27 @@ defmodule MusicLibrary.Assets do
def get!(hash) do
Repo.get!(Asset, hash)
end
def total_content_size do
q =
from p in Asset, select: sum(fragment("length(content)"))
Repo.one(q)
end
def track_total_content_size do
:telemetry.execute(
[:music_library, :assets],
%{content_size: total_content_size()},
%{}
)
end
def track_total_cache_size do
:telemetry.execute(
[:music_library, :assets],
%{cache_size: Cache.total_content_size()},
%{}
)
end
end