Track both content and cache size
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user