Files
music_library/lib/music_library_web/telemetry/plug.ex
T
Claudio Ortolina b111558f07 Use a plug for Prometheus metrics
The plug is injected as early as possible in order to respond quickly,
without polluting logs.
2025-03-04 20:21:15 +00:00

23 lines
417 B
Elixir

defmodule MusicLibraryWeb.Telemetry.Plug do
@behaviour Plug
import Plug.Conn
def init(opts) do
Keyword.validate!(opts, [:at])
end
def call(conn, opts) do
at = Keyword.fetch!(opts, :at)
if conn.request_path == at do
conn
|> put_resp_content_type("text/plain")
|> send_resp(200, TelemetryMetricsPrometheus.Core.scrape())
|> halt()
else
conn
end
end
end