Track both content and cache size
This commit is contained in:
@@ -12,11 +12,11 @@ defmodule MusicLibrary.Application do
|
||||
_ = Assets.Cache.new()
|
||||
|
||||
children = [
|
||||
MusicLibraryWeb.Telemetry,
|
||||
MusicLibrary.Vault,
|
||||
MusicLibrary.Repo,
|
||||
MusicLibrary.ErrorRepo,
|
||||
MusicLibrary.BackgroundRepo,
|
||||
MusicLibraryWeb.Telemetry,
|
||||
{Oban, Application.fetch_env!(:music_library, Oban)},
|
||||
{Ecto.Migrator,
|
||||
repos: Application.fetch_env!(:music_library, :ecto_repos), skip: skip_migrations?()},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -23,14 +23,6 @@ defmodule MusicLibrary.Assets.Cache do
|
||||
)
|
||||
end
|
||||
|
||||
def track_total_content_size do
|
||||
:telemetry.execute(
|
||||
[:music_library, :assets, :cache],
|
||||
%{total_content_size: total_content_size()},
|
||||
%{}
|
||||
)
|
||||
end
|
||||
|
||||
def prune(older_than_seconds) do
|
||||
threshold =
|
||||
DateTime.utc_now()
|
||||
|
||||
Reference in New Issue
Block a user