2022-12-15 02:02:07 +00:00
|
|
|
defmodule Pleroma.Web.AkkomaAPI.MetricsController do
|
|
|
|
use Pleroma.Web, :controller
|
|
|
|
|
|
|
|
alias Pleroma.Web.Plugs.OAuthScopesPlug
|
2022-12-16 11:17:04 +00:00
|
|
|
alias Pleroma.Config
|
2022-12-15 02:02:07 +00:00
|
|
|
|
2022-12-16 03:32:51 +00:00
|
|
|
plug(
|
|
|
|
OAuthScopesPlug,
|
|
|
|
%{scopes: ["admin:metrics"]}
|
|
|
|
when action in [
|
|
|
|
:show
|
|
|
|
]
|
|
|
|
)
|
2022-12-15 02:02:07 +00:00
|
|
|
|
|
|
|
def show(conn, _params) do
|
2022-12-16 11:17:04 +00:00
|
|
|
if Config.get([:instance, :export_prometheus_metrics], true) do
|
|
|
|
conn
|
2023-01-01 18:32:14 +00:00
|
|
|
|> text(Pleroma.PrometheusExporter.show())
|
2022-12-16 11:17:04 +00:00
|
|
|
else
|
|
|
|
conn
|
|
|
|
|> send_resp(404, "Not Found")
|
|
|
|
end
|
2022-12-15 02:02:07 +00:00
|
|
|
end
|
|
|
|
end
|