plushie/telemetry
Thin wrapper over the Erlang telemetry library.
Provides a Gleam-friendly API for emitting telemetry events.
Event names are lists of strings that get converted to atom
lists for the underlying :telemetry.execute/3 call.
Usage
import gleam/dict
import gleam/dynamic
import plushie/telemetry
telemetry.execute(
["plushie", "bridge", "send"],
dict.from_list([#("byte_size", dynamic.from(42))]),
dict.new(),
)
Values
pub fn attach(
handler_id: String,
event_name: List(String),
handler: fn(
List(String),
dict.Dict(String, dynamic.Dynamic),
dict.Dict(String, dynamic.Dynamic),
) -> Nil,
config: dynamic.Dynamic,
) -> Result(Nil, dynamic.Dynamic)
Attach a handler for a telemetry event.
The handler function receives the event name, measurements, metadata, and the config value passed here.
Returns Ok(Nil) on success, Error(reason) if the handler ID is already in use.
pub fn execute(
event_name: List(String),
measurements: dict.Dict(String, dynamic.Dynamic),
metadata: dict.Dict(String, dynamic.Dynamic),
) -> Nil
Emit a telemetry event.
event_name: list of strings identifying the event (converted to atoms internally, e.g.["plushie", "bridge", "send"]).measurements: numeric measurements (byte_size, duration, etc.).metadata: contextual information (reason, format, etc.).