PhiAccrual.Source.DistributionPing (phi_accrual v1.0.0)

View Source

Reference heartbeat source — sends an app-layer ping to every currently-connected node at a fixed interval.

Pings travel over BEAM distribution, so this source inherits HoL blocking: if the distribution TCP send buffer to a peer is full (see :busy_dist_port in PhiAccrual.PauseMonitor), pings queue behind user traffic. That is why v1 is observability-grade rather than decision-grade. The planned phi_accrual_udp companion package escapes HoL by using its own socket.

Cost

O(N²) cluster-wide at steady state: each node pings every peer. A 50-node cluster at the default 1 s interval is 2 500 pings/second of distribution traffic — cheap per-ping, not free in aggregate.

Opting in

Not started by default. Enable via application config:

config :phi_accrual,
  distribution_ping: [interval_ms: 1_000, auto_track: true]

This source is supervised separately from the per-node estimator supervisor: a restart here does not wipe estimator state.

Summary

Functions

Returns a specification to start this module under a supervisor.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.