Monitors a bounded set of local supervised processes and records safe exits.
Recording is lazy by default: the first console subscriber activates watches
and the last subscriber removes them. In :always mode the recorder remains
active for the application lifetime. Snapshot observations are consumed from
the collector's existing supervision traversal; this process never calls a
supervisor or retains a runtime snapshot. Reconciliation refreshes cross the
runtime boundary through an injected, bounded requester.
Summary
Functions
Activates lazy recording when the first console subscriber connects.
Returns a specification to start this module under a supervisor.
Deactivates lazy recording and removes its process monitors.
Returns a newest-first bounded lifecycle-event window with omission metadata.
Reconciles one bounded private observation batch from a completed collector frame.
Pauses recording through the configured authority until explicitly resumed.
Resumes through the configured authority when recording demand is present.
Returns newest aggregate recorder frames under the configured history cap.
Starts a lifecycle recorder with optional configuration and runtime collaborators.
Returns PID-free recorder activity, coverage, and bounded-history statistics.
Types
@type query_error() :: {:error, {:invalid_query_options, term()}}
@type status() :: BeamConsole.Recorder.Status.t()
Functions
@spec activate(GenServer.server()) :: :ok
Activates lazy recording when the first console subscriber connects.
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec deactivate(GenServer.server()) :: :ok
Deactivates lazy recording and removes its process monitors.
@spec events(keyword(), GenServer.server(), timeout()) :: BeamConsole.Recorder.Query.t() | query_error()
Returns a newest-first bounded lifecycle-event window with omission metadata.
@spec observe( BeamConsole.Recorder.Frame.t(), [BeamConsole.Lifecycle.Observation.t()], keyword(), GenServer.server() ) :: :ok
Reconciles one bounded private observation batch from a completed collector frame.
@spec pause(GenServer.server(), timeout()) :: BeamConsole.Recorder.Status.t()
Pauses recording through the configured authority until explicitly resumed.
@spec resume(GenServer.server(), timeout()) :: BeamConsole.Recorder.Status.t()
Resumes through the configured authority when recording demand is present.
@spec samples(keyword(), GenServer.server(), timeout()) :: BeamConsole.Recorder.Query.t() | query_error()
Returns newest aggregate recorder frames under the configured history cap.
@spec start_link(keyword()) :: GenServer.on_start()
Starts a lifecycle recorder with optional configuration and runtime collaborators.
The optional zero-arity :refresh_requester runs outside the recorder
process and is bounded by :refresh_timeout, which defaults to 250
milliseconds. The existing :collector option remains supported with its
original asynchronous refresh protocol.
@spec status(GenServer.server(), timeout()) :: status()
Returns PID-free recorder activity, coverage, and bounded-history statistics.