Package protocols.apps.canvas.telemetry
Class Telemetry
java.lang.Object
protocols.apps.canvas.telemetry.Telemetry
Structured, machine-readable event emitter — the data contract between the
canvas demo and the
babel-canvas-experiments correctness harness.
Each method writes exactly one line to the dedicated canvas.telemetry
logger, which log4j2 routes to a per-node telemetry file with an epoch-millis
prefix (%d{UNIX_MILLIS}, see log4j2.xml). So the event's time is
the line prefix — methods here never stamp their own. The line body is
EVENT key=value key=value … with no spaces inside values, which the
harness parses by splitting on whitespace then on =.
What the harness derives from these events:
- reliability —
DELIVERcount peropacross nodes ÷ live nodes; - latency — a node's
DELIVERprefix-time minus the op'sBROADCASTprefix-time; - convergence — all live nodes' final
DIGEST hashagree; - overlay health —
DIGEST view/peersstay within HyParView's active-view bound;NEIGHBOR_*churn;peersgives a time-aligned active-view set for symmetry; - gossip vs. repair —
SYNC_MERGE appliedcounts ops a node obtained from a snapshot rather than gossipDELIVER, so coverage can be split into the eager-push share and the snapshot-reconciliation share; - start coordination —
PAINT_START triggeriscontrol(the experiment script wrote RUN once the whole system had settled) ortimer(legacy start-delay);view/sinceBootMslet the analyzer confirm the overlay was formed when broadcasting began.WORKLOAD_STOPmarks the end of painting.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidEmitted by the origin node when it issues a paint op.voidEmitted by every node (including the origin) when an op is delivered locally.voidPeriodic convergence digest of the local canvas.voidneighborDown(String peer, int activeView) voidneighborUp(String peer, int activeView) voidpaintStart(int activeView, long sinceBootMs, String trigger) The local node began its paint workload.voidOnce at startup: records this node's identity and the run's key parameters.voidThis node merged a snapshot reply fromfrom:opsops received,appliedof them won LWW (state this node obtained by reconciliation rather than gossip — invisible to thedeliveredcounter and DELIVER lines).voidsyncRequest(String peer) This node askedpeerfor a canvas snapshot (point-to-point, once it has a neighbour).voidThis node served its canvas snapshot (opswinning ops) toto.voidworkloadStop(long paintedMs) The local node stopped generating paint ops — on the script's STOP (or the in-node duration safety-cap), before the drain window.
-
Constructor Details
-
Telemetry
-
-
Method Details
-
start
Once at startup: records this node's identity and the run's key parameters. -
broadcast
Emitted by the origin node when it issues a paint op. -
deliver
Emitted by every node (including the origin) when an op is delivered locally. -
digest
public void digest(long tick, long hash, int paintedCells, int activeView, long delivered, String peers) Periodic convergence digest of the local canvas.deliveredis this node's in-process count of distinct ops delivered via gossip — a robust coverage signal the analyzer cross-checks against the (higher-volume, loss-prone) DELIVER lines.peersis the active-view set (ip:portjoined by;, empty when the view is empty): a time-stamped membership snapshot from which the analyzer reconstructs active-view symmetry at a common instant, robust to churn. -
neighborUp
-
neighborDown
-
paintStart
The local node began its paint workload.triggeriscontrol(the experiment script's coordinated RUN, after the whole system settled) ortimer(legacy/demo start-delay).viewat start lets the analyzer check that the overlay was actually formed when broadcasting began. -
workloadStop
public void workloadStop(long paintedMs) The local node stopped generating paint ops — on the script's STOP (or the in-node duration safety-cap), before the drain window. Deliveries keep flowing afterwards. -
syncRequest
This node askedpeerfor a canvas snapshot (point-to-point, once it has a neighbour). -
syncServe
This node served its canvas snapshot (opswinning ops) toto. -
syncMerge
This node merged a snapshot reply fromfrom:opsops received,appliedof them won LWW (state this node obtained by reconciliation rather than gossip — invisible to thedeliveredcounter and DELIVER lines).
-