AppSignal v0.0.1 Appsignal.Transaction
Functions related to Appsignal transactions
This module contains functions for starting and stopping an Appsignal transaction, recording events and collecting metrics within a transaction, et cetera.
Summary
Types
The transaction’s namespace
Datatype which is used as a handle to the current Appsignal transaction
Functions
Complete a transaction
Finish a transaction
Finish an event
Generate a random id as a string to use as transaction identifier
Set action of a transaction
Set an error for a transaction
Set metadata for a transaction
Set queue start time of a transaction
Set sample data for a transaction
Start a transaction
Start an event
Types
namespace :: :http_request | :background_job
The transaction’s namespace
transaction :: %Appsignal.Transaction{id: term, resource: term}
Datatype which is used as a handle to the current Appsignal transaction.
Functions
Specs
complete(transaction) :: :ok
Complete a transaction
Call this after finishing a transaction (and adding sample data if necessary).
transaction: The pointer to the transaction this event occurred in
Specs
finish(transaction) :: :sample | :no_sample
Finish a transaction
Call this when a transaction such as a http request or background job ends.
transaction: The pointer to the transaction this event occurred in
Returns :sample wether sample data for this transaction should be
collected.
Specs
finish_event(transaction, String.t, String.t, String.t, integer) :: transaction
Finish an event
Call this when an event ends.
transaction: The pointer to the transaction this event occurred inname: Name of the category of the event (sql.query, net.http)title: Title of the event (‘User load’, ‘Http request to google.com’)body: Body of the event, should not contain unique information per specific event (select * from users where id=?)body_formatFormat of the event’s body which can be used for sanitization, 0 for general and 1 for sql currently.
Specs
generate_id :: String.t
Generate a random id as a string to use as transaction identifier.
Specs
set_action(transaction, String.t) :: transaction
Set action of a transaction
Call this when the identifying action of a transaction is known.
transaction: The pointer to the transaction this event occurred inaction: This transactions action ("HomepageController.show")
Specs
set_error(transaction, String.t, String.t, any) :: transaction
Set an error for a transaction
Call this when an error occurs within a transaction.
transaction: The pointer to the transaction this event occurred inname: Name of the error (RuntimeError)message: Message of the error (‘undefined method call for something’)backtrace: Backtrace of the error; will be JSON encoded
Specs
set_meta_data(transaction, String.t, String.t) :: transaction
Set metadata for a transaction
Call this when an error occurs within a transaction to set more detailed data about the error
transaction: The pointer to the transaction this event occurred inkey: Key of this piece of metadata ("email")value: Value of this piece of metadata ("thijs@appsignal.com")
Specs
set_queue_start(transaction, integer) :: transaction
Set queue start time of a transaction
Call this when the queue start time in miliseconds is known.
transaction: The pointer to the transaction this event occurred inqueue_start: Transaction queue start time in ms if known, otherwise -1
Specs
set_sample_data(transaction, String.t, any) :: transaction
Set sample data for a transaction
Use this to add sample data if finish_transaction returns true.
transaction: The pointer to the transaction this event occurred inkey: Key of this piece of metadata (params, session_data)payload: Metadata (e.g.%{user_id: 1}); will be JSON encoded
Specs
start(String.t, namespace) :: transaction
Start a transaction
Call this when a transaction such as a http request or background job starts.
Parameters:
transaction_idThe unique identifier of this transactionnamespaceThe namespace of this transaction. Must be one of:http_request,:background_job.
The function returns a %Transaction{} struct for use with the the other transaction functions in this module.
Specs
start_event(transaction) :: transaction
Start an event
Call this when an event within a transaction you want to measure starts, such as an SQL query or http request.
transaction: The pointer to the transaction this event occurred in.