Appsignal.Tracer (AppSignal v2.15.3)

View Source

Summary

Functions

Closes a span and deregisters it.

Closes a span and deregisters it. Takes an options list, which currently only accepts a List with an :end_time integer.

Creates a new root span.

Creates a new child span.

Creates a new span, with an optional parent or pid.

Returns the current span in the current process.

Returns the current span in the passed pid's process.

This function can be defined by the user and will be executed on the creation of the span after create_span/3 is executed. It can be used to add custom_data to the span.

Removes the process' spans from the registry.

Ignores the current process.

Ignores the given process.

Finds the span in the registry table.

Returns the root span in the current process.

Returns the root span in the passed pid's process.

Types

option()

@type option() :: {:pid, pid()} | {:start_time, integer()}

options()

@type options() :: [option()]

Functions

close_span(span)

@spec close_span(Appsignal.Span.t() | nil) :: :ok | nil

Closes a span and deregisters it.

Example

Appsignal.Tracer.current_span()
|> Appsignal.Tracer.close_span()

close_span(span, options)

@spec close_span(Appsignal.Span.t() | nil, list()) :: :ok | nil

Closes a span and deregisters it. Takes an options list, which currently only accepts a List with an :end_time integer.

Example

Appsignal.Tracer.current_span()
|> Appsignal.Tracer.close_span(end_time: :os.system_time())

create_span(namespace)

@spec create_span(String.t()) :: Appsignal.Span.t() | nil

Creates a new root span.

Example

Appsignal.Tracer.create_span("http_request")

create_span(namespace, parent)

@spec create_span(String.t(), Appsignal.Span.t() | nil) :: Appsignal.Span.t() | nil

Creates a new child span.

Example

parent = Appsignal.Tracer.current_span()

Appsignal.Tracer.create_span("http_request", parent)

create_span(namespace, parent, options)

@spec create_span(String.t(), Appsignal.Span.t() | nil, options()) ::
  Appsignal.Span.t() | nil

Creates a new span, with an optional parent or pid.

Example

parent = Appsignal.Tracer.current_span()

Appsignal.Tracer.create_span("http_request", parent, [start_time: :os.system_time(), pid: self()])

current_span()

@spec current_span() :: Appsignal.Span.t() | nil

Returns the current span in the current process.

current_span(pid)

@spec current_span(pid()) :: Appsignal.Span.t() | nil

Returns the current span in the passed pid's process.

custom_on_create_fun(span)

@spec custom_on_create_fun(Appsignal.Span.t() | nil) :: any()

This function can be defined by the user and will be executed on the creation of the span after create_span/3 is executed. It can be used to add custom_data to the span.

Example in your own application:

defmodule MyApp.Appsignal do
  def custom_on_create_fun(span) do
    Appsignal.Span.set_sample_data(span, "custom_data", %{"foo": "bar"})
  end
end

This can be added to the config with:

config :appsignal, custom_on_create_fun: &MyApp.Appsignal.custom_on_create_fun/1

delete(pid)

@spec delete(pid()) :: :ok

Removes the process' spans from the registry.

ignore()

@spec ignore() :: :ok

Ignores the current process.

ignore(pid)

@spec ignore(pid()) :: :ok

Ignores the given process.

lookup(pid)

@spec lookup(pid()) :: list() | []

Finds the span in the registry table.

root_span()

@spec root_span() :: Appsignal.Span.t() | nil

Returns the root span in the current process.

root_span(pid)

@spec root_span(pid()) :: Appsignal.Span.t() | nil

Returns the root span in the passed pid's process.