Musubi.Telemetry (musubi v0.3.0)

Copy Markdown View Source

Telemetry emission helper for Musubi runtime events plus the canonical event catalog.

events/0 returns every event name emitted by the runtime, paired with a one-line description. Use it to attach a single handler to all Musubi events (e.g. for log-shipping, metrics aggregation, or test observation):

Musubi.Telemetry.events()
|> Enum.map(&elem(&1, 0))
|> :telemetry.attach_many("musubi-collector", &MyTelemetry.handle_event/4, nil)

Summary

Types

One Musubi telemetry event entry: {event_name, description}.

Functions

Emits a telemetry event when the :telemetry module is available.

Returns every telemetry event the Musubi runtime emits along with a one-line description.

Types

event()

@type event() :: {[atom()], String.t()}

One Musubi telemetry event entry: {event_name, description}.

Functions

emit(event_name, measurements, metadata)

@spec emit([atom()], map(), map()) :: :ok

Emits a telemetry event when the :telemetry module is available.

Examples

iex> Musubi.Telemetry.emit([:musubi, :render, :stop], %{duration: 10}, %{module: Example})
:ok

events()

@spec events() :: [event()]

Returns every telemetry event the Musubi runtime emits along with a one-line description.

Examples

iex> [{[:musubi, :command, :start], _desc} | _rest] = Musubi.Telemetry.events()