scout_apm v1.0.7 ScoutApm.TrackedRequest

Stores information about a single request, as the request is happening. Attempts to do minimal processing. Its job is only to collect up information. Once the request is finished, the last layer will be stopped - and we can send this whole data structure off to be processed.

A quick visual of how this looks:

START Controller (this is scope.) TRACK Ecto

START View

TRACK Ecto

START Partial View
STOP Partial View

STOP View STOP Controller

Link to this section Summary

Functions

Marks the current tracked request as ignored, preventing it from being sent or included in any metrics. It can be used in both web requests and jobs.

Not intended for public use. Applies a function that takes an Layer, and returns a Layer to the currently tracked layer. Building block for things like: "update_desc"

Link to this section Functions

Link to this function

change_collector_fn(f)

Link to this function

change_collector_fn(tr, f)

Marks the current tracked request as ignored, preventing it from being sent or included in any metrics. It can be used in both web requests and jobs.

If you'd like to sample only 75% of your application's web requests, a Plug is a good way to do that:

defmodule MyApp.ScoutSamplingPlug do
  @behaviour Plug
  def init(_), do: []

  def call(conn, _opts) do
    # capture 75% of requests
    if :rand.uniform() > 0.75 do
      ScoutApm.TrackedRequest.ignore()
    end
  end
end

Instrumented jobs can also be ignored by conditionally calling this function:

deftransaction multiplication_job(num1, num2) do
  if num1 < 0 do
    ScoutApm.TrackedRequest.ignore()
  end

  num1 * num2
end
Link to this function

mark_error(request)

Link to this function

new(custom_collector \\ nil)

Link to this function

record_context(context)

Link to this function

record_context(tr, context)

Link to this function

rename(new_transaction_name)

Link to this function

start_layer(type, name, opts \\ [])

Link to this function

start_layer(tr, type, name, opts)

Link to this function

stop_layer(callback)

Link to this function

stop_layer(tr, callback)

Link to this function

track_layer(type, name, duration, fields, callback \\ fn x -> x end)

Link to this function

track_layer(tr, type, name, duration, fields, callback)

Link to this function

update_current_layer(fun)

Link to this function

update_current_layer(tr, fun)

Not intended for public use. Applies a function that takes an Layer, and returns a Layer to the currently tracked layer. Building block for things like: "update_desc"