Instruments.StatsReporter behaviour (Instruments v2.12.0)

Copy Markdown

A behavoiur for reporters.

Reporters emit values back to the underlying reporting system. Out of the box, Instruments provides Instruments.Statix, Instruments.StatsReporter.Logger, and Instruments.StatsReporter.Nullreporters.

Summary

Callbacks

Connect to the reporter. This function is called by the system prior to using the reporter, any connections should be established in this function.

Decrement a key by the specified value

Set the value of the key to the specified value

Include the value in the histogram defined by key

Increment a key by the specified value

Measure the execution time of the provided function and include it in the metric defined by key

Send a DataDog event with the given title and text

Write the value into the set defined by key

Include the timing in the key

Types

key()

@type key() :: String.t()

stats_return()

@type stats_return() :: :ok | {:error, term()}

Callbacks

connect()

@callback connect() :: :ok

Connect to the reporter. This function is called by the system prior to using the reporter, any connections should be established in this function.

decrement(key, integer, keyword)

@callback decrement(key(), integer(), keyword()) :: stats_return()

Decrement a key by the specified value

gauge(key, integer, keyword)

@callback gauge(key(), integer(), keyword()) :: stats_return()

Set the value of the key to the specified value

histogram(key, integer, keyword)

@callback histogram(key(), integer(), keyword()) :: stats_return()

Include the value in the histogram defined by key

increment(key, integer, keyword)

@callback increment(key(), integer(), keyword()) :: stats_return()

Increment a key by the specified value

measure(key, keyword, function)

@callback measure(key(), keyword(), (-> any())) :: any()

Measure the execution time of the provided function and include it in the metric defined by key

send_event(title, text, keyword)

(optional)
@callback send_event(title :: iodata(), text :: iodata(), keyword()) :: stats_return()

Send a DataDog event with the given title and text

set(key, integer, keyword)

@callback set(key(), integer(), keyword()) :: stats_return()

Write the value into the set defined by key

timing(key, integer, keyword)

@callback timing(key(), integer(), keyword()) :: stats_return()

Include the timing in the key