Measure stats-data
Some checks are pending
ci/woodpecker/pr/woodpecker Pipeline is pending

This commit is contained in:
Tim Buchwaldt 2022-11-12 17:13:39 +01:00
parent 6aeaa2b9fd
commit 970dd40cc1
2 changed files with 17 additions and 4 deletions

View file

@ -64,7 +64,6 @@ defmodule Pleroma.Application do
Config.TransferTask, Config.TransferTask,
Pleroma.Emoji, Pleroma.Emoji,
Pleroma.Web.Plugs.RateLimiter.Supervisor, Pleroma.Web.Plugs.RateLimiter.Supervisor,
Pleroma.Web.Telemetry,
{Task.Supervisor, name: Pleroma.TaskSupervisor} {Task.Supervisor, name: Pleroma.TaskSupervisor}
] ++ ] ++
cachex_children() ++ cachex_children() ++
@ -74,7 +73,8 @@ defmodule Pleroma.Application do
Pleroma.JobQueueMonitor, Pleroma.JobQueueMonitor,
{Majic.Pool, [name: Pleroma.MajicPool, pool_size: Config.get([:majic_pool, :size], 2)]}, {Majic.Pool, [name: Pleroma.MajicPool, pool_size: Config.get([:majic_pool, :size], 2)]},
{Oban, Config.get(Oban)}, {Oban, Config.get(Oban)},
Pleroma.Web.Endpoint Pleroma.Web.Endpoint,
Pleroma.Web.Telemetry
] ++ ] ++
elasticsearch_children() ++ elasticsearch_children() ++
task_children(@mix_env) ++ task_children(@mix_env) ++

View file

@ -1,6 +1,7 @@
defmodule Pleroma.Web.Telemetry do defmodule Pleroma.Web.Telemetry do
use Supervisor use Supervisor
import Telemetry.Metrics import Telemetry.Metrics
alias Pleroma.Stats
def start_link(arg) do def start_link(arg) do
Supervisor.start_link(__MODULE__, arg, name: __MODULE__) Supervisor.start_link(__MODULE__, arg, name: __MODULE__)
@ -103,11 +104,23 @@ defmodule Pleroma.Web.Telemetry do
reporter_options: [ reporter_options: [
buckets: [0.01, 0.025, 0.05, 0.1, 0.2, 0.5, 1, 2.5, 5, 10] buckets: [0.01, 0.025, 0.05, 0.1, 0.2, 0.5, 1, 2.5, 5, 10]
] ]
) ),
last_value("pleroma.local_users.total"),
last_value("pleroma.domains.total"),
last_value("pleroma.local_statuses.total")
] ]
end end
defp periodic_measurements do defp periodic_measurements do
[] [
{__MODULE__, :instance_stats, []}
]
end
def instance_stats do
stats = Stats.get_stats()
:telemetry.execute([:pleroma, :local_users], %{total: stats.user_count}, %{})
:telemetry.execute([:pleroma, :domains], %{total: stats.domain_count}, %{})
:telemetry.execute([:pleroma, :local_statuses], %{total: stats.status_count}, %{})
end end
end end