NewRelic.Transaction (New Relic Elixir Agent v1.23.6) View Source
Transaction Reporting
To enable Transaction reporting, you must instrument your Plug pipeline with a single line.
The NewRelic.Transaction
macro injects the required plugs to wire up automatic
Transaction reporting.
Be sure to use
this as early in your Plug pipeline as possible to ensure the most
accurate response times.
defmodule MyApp do
use Plug.Router
use NewRelic.Transaction
# ...
end
To ignore reporting the current transaction, call:
NewRelic.ignore_transaction()
Inside a Transaction, the agent will track work across processes that are spawned as
well as work done inside a Task Supervisor. When using Task.Supervisor.async_nolink
you can signal to the agent not to track the work done inside the Task, which will
exclude it from the current Transaction. To do this, send in an additional option:
Task.Supervisor.async_nolink(
MyTaskSupervisor,
fn -> do_work() end,
new_relic: :no_track
)
Link to this section Summary
Functions
If you send a custom error response in your own Plug.ErrorHandler
,
you MUST manually alert the agent of the error!
Link to this section Functions
If you send a custom error response in your own Plug.ErrorHandler
,
you MUST manually alert the agent of the error!
defmodule MyPlug do
# ...
use Plug.ErrorHandler
def handle_errors(conn, error) do
NewRelic.Transaction.handle_errors(conn, error)
send_resp(conn, 500, "Oops!")
end
end