WebsockexNova.Behaviors.MetricsCollector behaviour (WebsockexNova v0.1.1)
View SourceBehaviour for metrics collectors. All state and context are maps. All arguments and return values are explicit and documented. Supports both stateless (3-arity, for telemetry) and stateful (4-arity, for handler API) callbacks.
Summary
Callbacks
Handles connection-related telemetry events (stateless, for telemetry). Returns
Handles connection-related events with canonical state struct (for handler API). Returns
Handles error-related telemetry events (stateless, for telemetry). Returns
Handles error-related events with canonical state struct (for handler API). Returns
Handles message-related telemetry events (stateless, for telemetry). Returns
Handles message-related events with canonical state struct (for handler API). Returns
Types
@type conn_state() :: WebsockexNova.ClientConn.t()
Canonical connection state struct
@type event() :: [atom()]
Event type
@type measurements() :: map()
Measurements map
@type metadata() :: map()
Metadata map
@type metric_type() :: :counter | :gauge | :histogram
Metric type
Callbacks
@callback handle_connection_event(event(), measurements(), metadata()) :: :ok
Handles connection-related telemetry events (stateless, for telemetry). Returns:
:ok
@callback handle_connection_event(event(), measurements(), metadata(), conn_state()) :: {:ok, conn_state()}
Handles connection-related events with canonical state struct (for handler API). Returns:
{:ok, conn_state}
@callback handle_error_event(event(), measurements(), metadata()) :: :ok
Handles error-related telemetry events (stateless, for telemetry). Returns:
:ok
@callback handle_error_event(event(), measurements(), metadata(), conn_state()) :: {:ok, conn_state()}
Handles error-related events with canonical state struct (for handler API). Returns:
{:ok, conn_state}
@callback handle_message_event(event(), measurements(), metadata()) :: :ok
Handles message-related telemetry events (stateless, for telemetry). Returns:
:ok
@callback handle_message_event(event(), measurements(), metadata(), conn_state()) :: {:ok, conn_state()}
Handles message-related events with canonical state struct (for handler API). Returns:
{:ok, conn_state}