commit: 50269e9cacdbb7834c31fc7ad9872b68977e9f10
parent 46ae62d159ca0a330d18a2e1f775a5ed9eaebc42
Author: kaniini <ariadne@dereferenced.org>
Date: Wed, 11 Sep 2019 20:47:25 +0000
Merge branch 'feature/jason-view-render' into 'develop'
Use Jason for rendering responses
See merge request pleroma/pleroma!1655
Diffstat:
3 files changed, 67 insertions(+), 64 deletions(-)
diff --git a/config/config.exs b/config/config.exs
@@ -373,6 +373,8 @@ config :pleroma, :chat, enabled: true
config :phoenix, :format_encoders, json: Jason
+config :phoenix, :json_library, Jason
+
config :pleroma, :gopher,
enabled: false,
ip: {0, 0, 0, 0},
diff --git a/lib/healthcheck.ex b/lib/healthcheck.ex
@@ -1,64 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Healthcheck do
- @moduledoc """
- Module collects metrics about app and assign healthy status.
- """
- alias Pleroma.Healthcheck
- alias Pleroma.Repo
-
- defstruct pool_size: 0,
- active: 0,
- idle: 0,
- memory_used: 0,
- healthy: true
-
- @type t :: %__MODULE__{
- pool_size: non_neg_integer(),
- active: non_neg_integer(),
- idle: non_neg_integer(),
- memory_used: number(),
- healthy: boolean()
- }
-
- @spec system_info() :: t()
- def system_info do
- %Healthcheck{
- memory_used: Float.round(:erlang.memory(:total) / 1024 / 1024, 2)
- }
- |> assign_db_info()
- |> check_health()
- end
-
- defp assign_db_info(healthcheck) do
- database = Pleroma.Config.get([Repo, :database])
-
- query =
- "select state, count(pid) from pg_stat_activity where datname = '#{database}' group by state;"
-
- result = Repo.query!(query)
- pool_size = Pleroma.Config.get([Repo, :pool_size])
-
- db_info =
- Enum.reduce(result.rows, %{active: 0, idle: 0}, fn [state, cnt], states ->
- if state == "active" do
- Map.put(states, :active, states.active + cnt)
- else
- Map.put(states, :idle, states.idle + cnt)
- end
- end)
- |> Map.put(:pool_size, pool_size)
-
- Map.merge(healthcheck, db_info)
- end
-
- @spec check_health(Healthcheck.t()) :: Healthcheck.t()
- def check_health(%{pool_size: pool_size, active: active} = check)
- when active >= pool_size do
- %{check | healthy: false}
- end
-
- def check_health(check), do: check
-end
diff --git a/lib/pleroma/healthcheck.ex b/lib/pleroma/healthcheck.ex
@@ -0,0 +1,65 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Healthcheck do
+ @moduledoc """
+ Module collects metrics about app and assign healthy status.
+ """
+ alias Pleroma.Healthcheck
+ alias Pleroma.Repo
+
+ @derive Jason.Encoder
+ defstruct pool_size: 0,
+ active: 0,
+ idle: 0,
+ memory_used: 0,
+ healthy: true
+
+ @type t :: %__MODULE__{
+ pool_size: non_neg_integer(),
+ active: non_neg_integer(),
+ idle: non_neg_integer(),
+ memory_used: number(),
+ healthy: boolean()
+ }
+
+ @spec system_info() :: t()
+ def system_info do
+ %Healthcheck{
+ memory_used: Float.round(:erlang.memory(:total) / 1024 / 1024, 2)
+ }
+ |> assign_db_info()
+ |> check_health()
+ end
+
+ defp assign_db_info(healthcheck) do
+ database = Pleroma.Config.get([Repo, :database])
+
+ query =
+ "select state, count(pid) from pg_stat_activity where datname = '#{database}' group by state;"
+
+ result = Repo.query!(query)
+ pool_size = Pleroma.Config.get([Repo, :pool_size])
+
+ db_info =
+ Enum.reduce(result.rows, %{active: 0, idle: 0}, fn [state, cnt], states ->
+ if state == "active" do
+ Map.put(states, :active, states.active + cnt)
+ else
+ Map.put(states, :idle, states.idle + cnt)
+ end
+ end)
+ |> Map.put(:pool_size, pool_size)
+
+ Map.merge(healthcheck, db_info)
+ end
+
+ @spec check_health(Healthcheck.t()) :: Healthcheck.t()
+ def check_health(%{pool_size: pool_size, active: active} = check)
+ when active >= pool_size do
+ %{check | healthy: false}
+ end
+
+ def check_health(check), do: check
+end