diff options
| author | href <href@random.sh> | 2019-01-30 16:32:30 +0100 | 
|---|---|---|
| committer | Mark Felder <feld@FreeBSD.org> | 2019-04-04 11:30:43 -0500 | 
| commit | bc3618a38d2e37254e27f723d3dd61679eca9be5 (patch) | |
| tree | 822b87dbe8b6d5b55ac64a023eb978b2d8078070 /lib | |
| parent | b655a8ea839d19443f44ff5b300a069d88ec7d58 (diff) | |
| download | pleroma-bc3618a38d2e37254e27f723d3dd61679eca9be5.tar.gz pleroma-bc3618a38d2e37254e27f723d3dd61679eca9be5.zip  | |
Set up telemetry and prometheus
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/application.ex | 8 | ||||
| -rw-r--r-- | lib/pleroma/repo.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/endpoint.ex | 20 | 
3 files changed, 32 insertions, 0 deletions
diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex index 782d1d589..03dcbab1a 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -25,6 +25,7 @@ defmodule Pleroma.Application do      import Cachex.Spec      Pleroma.Config.DeprecationWarnings.warn() +    setup_instrumenters()      # Define workers and child supervisors to be supervised      children = @@ -140,6 +141,13 @@ defmodule Pleroma.Application do        end    end +  defp setup_instrumenters() do +    Pleroma.Web.Endpoint.MetricsExporter.setup() +    Pleroma.Web.Endpoint.PipelineInstrumenter.setup() +    Pleroma.Web.Endpoint.Instrumenter.setup() +    Pleroma.Repo.Instrumenter.setup() +  end +    if Mix.env() == :test do      defp streamer_child, do: []      defp chat_child, do: [] diff --git a/lib/pleroma/repo.ex b/lib/pleroma/repo.ex index 4af1bde56..aa5d427ae 100644 --- a/lib/pleroma/repo.ex +++ b/lib/pleroma/repo.ex @@ -8,6 +8,10 @@ defmodule Pleroma.Repo do      adapter: Ecto.Adapters.Postgres,      migration_timestamps: [type: :naive_datetime_usec] +  defmodule Instrumenter do +    use Prometheus.EctoInstrumenter +  end +    @doc """    Dynamically loads the repository url from the    DATABASE_URL environment variable. diff --git a/lib/pleroma/web/endpoint.ex b/lib/pleroma/web/endpoint.ex index fa2d1cbe7..6d9528c86 100644 --- a/lib/pleroma/web/endpoint.ex +++ b/lib/pleroma/web/endpoint.ex @@ -70,6 +70,26 @@ defmodule Pleroma.Web.Endpoint do      extra: "SameSite=Strict"    ) +  # Note: the plug and its configuration is compile-time this can't be upstreamed yet +  if proxies = Pleroma.Config.get([__MODULE__, :reverse_proxies]) do +    plug(RemoteIp, proxies: proxies) +  end + +  defmodule Instrumenter do +    use Prometheus.PhoenixInstrumenter +  end + +  defmodule PipelineInstrumenter do +    use Prometheus.PlugPipelineInstrumenter +  end + +  defmodule MetricsExporter do +    use Prometheus.PlugExporter +  end + +  plug(PipelineInstrumenter) +  plug(MetricsExporter) +    plug(Pleroma.Web.Router)    @doc """  | 
