cc7a616ee6f30fcd598acd65ba61087965d80a9c
[akkoma] / lib / pleroma / web / akkoma_api / controllers / metrics_controller.ex
1 defmodule Pleroma.Web.AkkomaAPI.MetricsController do
2 use Pleroma.Web, :controller
3
4 alias Pleroma.Web.Plugs.OAuthScopesPlug
5 alias Pleroma.Config
6
7 plug(
8 OAuthScopesPlug,
9 %{scopes: ["admin:metrics"]}
10 when action in [
11 :show
12 ]
13 )
14
15 def show(conn, _params) do
16 if Config.get([:instance, :export_prometheus_metrics], true) do
17 conn
18 |> text(TelemetryMetricsPrometheus.Core.scrape())
19 else
20 conn
21 |> send_resp(404, "Not Found")
22 end
23 end
24 end