WebsockexNova.Behaviors.MetricsCollector behaviour (WebsockexNova v0.1.0)

View Source

Behaviour 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

Types

Canonical connection state struct

Event type

Measurements map

Metadata map

Metric type

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

conn_state()

@type conn_state() :: WebsockexNova.ClientConn.t()

Canonical connection state struct

event()

@type event() :: [atom()]

Event type

measurements()

@type measurements() :: map()

Measurements map

metadata()

@type metadata() :: map()

Metadata map

metric_type()

@type metric_type() :: :counter | :gauge | :histogram

Metric type

Callbacks

handle_connection_event(event, measurements, metadata)

@callback handle_connection_event(event(), measurements(), metadata()) :: :ok

Handles connection-related telemetry events (stateless, for telemetry). Returns:

  • :ok

handle_connection_event(event, measurements, metadata, conn_state)

@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}

handle_error_event(event, measurements, metadata)

@callback handle_error_event(event(), measurements(), metadata()) :: :ok

Handles error-related telemetry events (stateless, for telemetry). Returns:

  • :ok

handle_error_event(event, measurements, metadata, conn_state)

@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}

handle_message_event(event, measurements, metadata)

@callback handle_message_event(event(), measurements(), metadata()) :: :ok

Handles message-related telemetry events (stateless, for telemetry). Returns:

  • :ok

handle_message_event(event, measurements, metadata, conn_state)

@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}