X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Ftelemetry.ex;h=b0385060004cebed9b1083adec11e626d9feccea;hb=f86bf164300b7311160660970469efad5cfed3df;hp=5b01ee14deeb97218b0ea168c78f90153c1a736e;hpb=18bf82d7479b0bb767a657e1b7447529f9c2884f;p=akkoma diff --git a/lib/pleroma/web/telemetry.ex b/lib/pleroma/web/telemetry.ex index 5b01ee14d..b03850600 100644 --- a/lib/pleroma/web/telemetry.ex +++ b/lib/pleroma/web/telemetry.ex @@ -2,6 +2,7 @@ defmodule Pleroma.Web.Telemetry do use Supervisor import Telemetry.Metrics alias Pleroma.Stats + alias Pleroma.Config def start_link(arg) do Supervisor.start_link(__MODULE__, arg, name: __MODULE__) @@ -9,14 +10,28 @@ defmodule Pleroma.Web.Telemetry do @impl true def init(_arg) do - children = [ - {:telemetry_poller, measurements: periodic_measurements(), period: 10_000}, - {TelemetryMetricsPrometheus.Core, metrics: prometheus_metrics()} - ] + children = + [ + {:telemetry_poller, measurements: periodic_measurements(), period: 10_000} + ] ++ + prometheus_children() Supervisor.init(children, strategy: :one_for_one) end + defp prometheus_children do + config = Config.get([:instance, :export_prometheus_metrics], true) + + if config do + [ + {TelemetryMetricsPrometheus.Core, metrics: prometheus_metrics()}, + Pleroma.PrometheusExporter + ] + else + [] + end + end + # A seperate set of metrics for distributions because phoenix dashboard does NOT handle them well defp distribution_metrics do [ @@ -109,7 +124,8 @@ defmodule Pleroma.Web.Telemetry do summary("vm.total_run_queue_lengths.io"), last_value("pleroma.local_users.total"), last_value("pleroma.domains.total"), - last_value("pleroma.local_statuses.total") + last_value("pleroma.local_statuses.total"), + last_value("pleroma.remote_users.total") ] end @@ -127,5 +143,6 @@ defmodule Pleroma.Web.Telemetry do :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}, %{}) + :telemetry.execute([:pleroma, :remote_users], %{total: stats.remote_user_count}, %{}) end end