View Source Sentry.PlugCapture (Sentry v10.8.0)

Provides basic functionality to capture and send errors occurring within Plug applications, including Phoenix.

It is intended for usage with Sentry.PlugContext, which adds relevant request metadata to the Sentry context before errors are captured.

Usage

With Phoenix

In a Phoenix application, it is important to use this module before the Phoenix endpoint itself. It should be added to your endpoint.ex file:

defmodule MyApp.Endpoint
  use Sentry.PlugCapture
  use Phoenix.Endpoint, otp_app: :my_app

  # ...
end

With Plug

In a Plug application, you can add this module below your router:

defmodule MyApp.PlugRouter do
  use Plug.Router
  use Sentry.PlugCapture

  # ...
end

use Sentry.PlugCapture

When you use Sentry.PlugCapture, Sentry overrides your Plug.call/2 callback and adds capturing errors and reporting to Sentry. You can still re-override that callback after use Sentry.PlugCapture if you need to.

Scrubbing Sensitive Data

Since v9.1.0

Scrubbing sensitive data in Sentry.PlugCapture is available since v9.1.0 of this library.

Like Sentry.PlugContext, this module also supports scrubbing sensitive data out of errors. However, this module has to do some guessing to figure out if there are Plug.Conn structs to scrub. Right now, the strategy we use follows these steps:

  1. if the error is Phoenix.ActionClauseError, we scrub the Plug.Conn structs from the args field of that exception

Otherwise, we don't perform any scrubbing. To configure scrubbing, you can use the :scrubbing option (see below).

Options