View Source Exbox.Metrics (Exbox v0.3.7)
A module for handling and standardising metrics in Exbox applications.
To use this module, you must have the Telemetry library installed. To do so, add {:telemetry, "~> 1.2.1"} to your list of dependencies in mix.exs.
If you want to attach metrics to other events, you can use Exbox.Metrics.attach_telemetry/3
:
Examples
def start(_type, _args) do
Exbox.Metrics.attach_telemetry(:my_event, [:my, :params], &my_handler/1)
end
Public API
The following functions are provided by this module:
attach_controller_metrics/0
: Attaches metrics to the Phoenix endpoint stop event.attach_telemetry/3
: Attaches metrics to the given event with the given params.
Summary
Functions
Attaches metrics to the Phoenix endpoint stop event.
Attaches metrics to the given event with the given params.
Functions
@spec attach_controller_metrics() :: :ok
Attaches metrics to the Phoenix endpoint stop event.
Examples
iex> Exbox.Metrics.attach_controller_metrics()
:ok
Attaches metrics to the given event with the given params.
Examples
To attach metrics for a custom event :my_event
with parameters [:my, :event]
, and a custom handler function my_handler/3
, you can do the following:
defmodule MyAppHandler do
def my_handler(event, measurements, metadata) do
# Your custom handler implementation here
end
end
def start(_type, _args) do
Exbox.Metrics.attach_telemetry(:my_event, [:my, :event], &MyAppHandler.my_handler/3)
end
In this example, when :my_event is triggered, the telemetry system will call MyAppHandler.my_handler/1 with the captured event data. Ensure that the handler function is implemented appropriately for your specific use case.
Note: The metrics will only be attached if the application environment variable :capture_telemetry_events is set to true.
Parameters
event
(binary()) - The name of the event to which metrics will be attached.params
(list(atom())) - A list of parameters representing the context of the event.function
(any(), any(), any(), any() -> any()) - The function to be called when the event occurs. Returns :ok if the metrics are successfully attached.