X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fakkoma_api%2Fcontrollers%2Fmetrics_controller.ex;fp=lib%2Fpleroma%2Fweb%2Fakkoma_api%2Fcontrollers%2Fmetrics_controller.ex;h=cc7a616ee6f30fcd598acd65ba61087965d80a9c;hb=18bf82d7479b0bb767a657e1b7447529f9c2884f;hp=0000000000000000000000000000000000000000;hpb=07a48b9293e4046c50b5d424d60a1bf16c7cc198;p=akkoma diff --git a/lib/pleroma/web/akkoma_api/controllers/metrics_controller.ex b/lib/pleroma/web/akkoma_api/controllers/metrics_controller.ex new file mode 100644 index 000000000..cc7a616ee --- /dev/null +++ b/lib/pleroma/web/akkoma_api/controllers/metrics_controller.ex @@ -0,0 +1,24 @@ +defmodule Pleroma.Web.AkkomaAPI.MetricsController do + use Pleroma.Web, :controller + + alias Pleroma.Web.Plugs.OAuthScopesPlug + alias Pleroma.Config + + plug( + OAuthScopesPlug, + %{scopes: ["admin:metrics"]} + when action in [ + :show + ] + ) + + def show(conn, _params) do + if Config.get([:instance, :export_prometheus_metrics], true) do + conn + |> text(TelemetryMetricsPrometheus.Core.scrape()) + else + conn + |> send_resp(404, "Not Found") + end + end +end