Exclosured.Telemetry
(exclosured v0.1.4)
Copy Markdown
Telemetry events emitted by Exclosured.
Attach handlers to observe WASM compilation, function calls, and events.
All events follow the :telemetry.execute/3 convention.
Events
[:exclosured, :compile, :start]
Emitted when a WASM module starts compiling.
- Measurement:
%{system_time: integer} - Metadata:
%{module: atom}
[:exclosured, :compile, :stop]
Emitted when a WASM module finishes compiling.
- Measurement:
%{duration: integer}(native time units) Metadata:
%{module: atom, wasm_size: integer | nil}
[:exclosured, :compile, :error]
Emitted when a WASM module fails to compile.
- Measurement:
%{duration: integer} - Metadata:
%{module: atom, error: String.t()}
[:exclosured, :wasm, :call]
Emitted when a WASM function is called via LiveView.
- Measurement:
%{} - Metadata:
%{module: atom, func: String.t()}
[:exclosured, :wasm, :result]
Emitted when a WASM function returns a result.
- Measurement:
%{} - Metadata:
%{module: atom, func: String.t()}
[:exclosured, :wasm, :emit]
Emitted when WASM sends an event to LiveView.
- Measurement:
%{} - Metadata:
%{module: atom, event: String.t()}
[:exclosured, :wasm, :error]
Emitted when a WASM function call fails.
- Measurement:
%{} - Metadata:
%{module: atom, func: String.t(), error: String.t()}
[:exclosured, :wasm, :ready]
Emitted when a WASM module finishes loading in the browser.
- Measurement:
%{} - Metadata:
%{module: atom}
Example: Logging Handler
:telemetry.attach_many(
"exclosured-logger",
[
[:exclosured, :compile, :stop],
[:exclosured, :wasm, :call],
[:exclosured, :wasm, :emit],
[:exclosured, :wasm, :error]
],
fn event, measurements, metadata, _config ->
IO.inspect({event, measurements, metadata}, label: "exclosured")
end,
nil
)