allow disabling prometheus entirely
[akkoma] / lib / pleroma / web / akkoma_api / controllers / metrics_controller.ex
index 8d413bf58717bf77fb2b3c8fa5f7f0b3533774b3..cc7a616ee6f30fcd598acd65ba61087965d80a9c 100644 (file)
@@ -2,6 +2,7 @@ defmodule Pleroma.Web.AkkomaAPI.MetricsController do
   use Pleroma.Web, :controller
 
   alias Pleroma.Web.Plugs.OAuthScopesPlug
+  alias Pleroma.Config
 
   plug(
     OAuthScopesPlug,
@@ -12,9 +13,12 @@ defmodule Pleroma.Web.AkkomaAPI.MetricsController do
   )
 
   def show(conn, _params) do
-    stats = TelemetryMetricsPrometheus.Core.scrape()
-
-    conn
-    |> text(stats)
+    if Config.get([:instance, :export_prometheus_metrics], true) do
+      conn
+      |> text(TelemetryMetricsPrometheus.Core.scrape())
+    else
+      conn
+      |> send_resp(404, "Not Found")
+    end
   end
 end