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
change_collector_fn(f)
change_collector_fn(tr, f)
ignore()
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
mark_error()
mark_error(request)
new(custom_collector \\ nil)
record_context(context)
record_context(tr, context)
rename(new_transaction_name)
start_layer(type, name, opts \\ [])
start_layer(tr, type, name, opts)
stop_layer()
stop_layer(callback)
stop_layer(tr, callback)
track_layer(type, name, duration, fields, callback \\ fn x -> x end)
track_layer(tr, type, name, duration, fields, callback)
update_current_layer(fun)
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"