Phoenix.SocketClient.Telemetry (phoenix_socket_client v0.7.0)

Telemetry integration for Phoenix.SocketClient.

This module provides telemetry events for monitoring socket connections, channel joins/leaves, message handling, and connection lifecycle events.

Summary

Functions

Attaches a telemetry handler for debugging purposes.

Emits channel join duration event.

Emits channel leave duration event.

Detaches the debug handler.

Emits a telemetry event with the given name and measurements/metadata.

Emits reconnection attempt event.

Emits socket connection event.

Emits socket connection attempt event.

Emits socket connection duration event.

Emits socket connection error event.

Emits socket disconnection event.

Functions

attach_debug_handler()

@spec attach_debug_handler() :: :ok

Attaches a telemetry handler for debugging purposes.

Example

Phoenix.SocketClient.Telemetry.attach_debug_handler()

channel_event(action, pid, topic, measurements, metadata)

Emits a generic channel event.

channel_join_duration(pid, topic, duration)

@spec channel_join_duration(pid(), String.t(), integer()) :: :ok

Emits channel join duration event.

channel_join_error(pid, topic, error, metadata \\ %{})

@spec channel_join_error(pid(), String.t(), any(), map()) :: :ok

Emits channel join error event.

channel_joined(pid, topic, channel_pid, response, metadata \\ %{})

@spec channel_joined(pid(), String.t(), pid(), map(), map()) :: :ok

Emits channel join event.

channel_leave_duration(pid, topic, duration)

@spec channel_leave_duration(pid(), String.t(), integer()) :: :ok

Emits channel leave duration event.

channel_left(pid, topic, reason, metadata \\ %{})

@spec channel_left(pid(), String.t(), atom(), map()) :: :ok

Emits channel leave event.

channel_status_changed(pid, topic, old_status, new_status)

@spec channel_status_changed(pid(), String.t(), atom(), atom()) :: :ok

Emits channel status change event.

detach_debug_handler()

@spec detach_debug_handler() :: :ok

Detaches the debug handler.

emit_event(event_name, measurements \\ %{}, metadata \\ %{})

@spec emit_event([atom() | String.t()], map(), map()) :: :ok

Emits a telemetry event with the given name and measurements/metadata.

heartbeat_sent(pid, url, metadata \\ %{})

@spec heartbeat_sent(pid(), String.t(), map()) :: :ok

Emits heartbeat event.

message_event(action, pid, topic, event, payload, metadata \\ %{})

Emits a generic message event.

message_received(pid, topic, event, payload, metadata \\ %{})

@spec message_received(pid(), String.t(), String.t(), map(), map()) :: :ok

Emits message received event.

message_sent(pid, topic, event, payload, metadata \\ %{})

@spec message_sent(pid(), String.t(), String.t(), map(), map()) :: :ok

Emits message sent event.

reconnecting(pid, url, attempt, metadata \\ %{})

@spec reconnecting(pid(), String.t(), integer(), map()) :: :ok

Emits reconnection attempt event.

socket_connected(pid, url, metadata \\ %{})

@spec socket_connected(pid(), String.t(), map()) :: :ok

Emits socket connection event.

socket_connecting(pid, url, metadata \\ %{})

@spec socket_connecting(pid(), String.t(), map()) :: :ok

Emits socket connection attempt event.

socket_connection_duration(pid, url, duration)

@spec socket_connection_duration(pid(), String.t(), integer()) :: :ok

Emits socket connection duration event.

socket_connection_error(pid, url, error, metadata \\ %{})

@spec socket_connection_error(pid(), String.t(), any(), map()) :: :ok

Emits socket connection error event.

socket_disconnected(pid, url, reason, metadata \\ %{})

@spec socket_disconnected(pid(), String.t(), atom(), map()) :: :ok

Emits socket disconnection event.

socket_event(action, pid, url, measurements, metadata)

Emits a generic socket event.

socket_status_changed(pid, url, old_status, new_status)

@spec socket_status_changed(pid(), String.t(), atom(), atom()) :: :ok

Emits socket status change event.

state_change_event(type, id, old_status, new_status, metadata \\ %{})

Emits a generic state change event.