Telemetry event helpers for WhatsApp API requests.
Events
| Event | Measurements | Metadata |
|---|---|---|
[:whatsapp, :request, :start] | %{system_time: integer} | %{method: atom, path: String.t} |
[:whatsapp, :request, :stop] | %{duration: integer} | %{method: atom, path: String.t, status: integer} |
[:whatsapp, :request, :exception] | %{duration: integer} | %{method: atom, path: String.t, kind: atom, reason: term} |
[:whatsapp, :request, :retry] | %{system_time: integer} | %{method: atom, path: String.t, attempt: integer, reason: term, wait_ms: integer} |
Attaching Handlers
:telemetry.attach_many(
"whatsapp-logger",
[
[:whatsapp, :request, :start],
[:whatsapp, :request, :stop],
[:whatsapp, :request, :exception]
],
&MyApp.TelemetryHandler.handle_event/4,
nil
)
Summary
Functions
Emit an :exception telemetry event.
Emit a :retry telemetry event.
Emit a :start telemetry event.
Emit a :stop telemetry event.
Returns the [:whatsapp, :request, :exception] event name.
Returns the [:whatsapp, :request, :retry] event name.
Returns the [:whatsapp, :request, :start] event name.
Returns the [:whatsapp, :request, :stop] event name.
Functions
Emit an :exception telemetry event.
start_time is the monotonic time returned by emit_start/2.
@spec emit_retry(atom(), String.t(), pos_integer(), map()) :: :ok
Emit a :retry telemetry event.
Called before each retry attempt to allow observability into retry behaviour.
method- HTTP method atompath- request path stringattempt- the upcoming attempt number (1-indexed, so first retry is attempt 2)metadata- map with:reason(atom) and:wait_ms(integer)
Emit a :start telemetry event.
Returns the start time (monotonic) for computing duration in stop/exception.
Emit a :stop telemetry event.
start_time is the monotonic time returned by emit_start/2.
@spec event_exception() :: [atom()]
Returns the [:whatsapp, :request, :exception] event name.
@spec event_retry() :: [atom()]
Returns the [:whatsapp, :request, :retry] event name.
@spec event_start() :: [atom()]
Returns the [:whatsapp, :request, :start] event name.
@spec event_stop() :: [atom()]
Returns the [:whatsapp, :request, :stop] event name.