orleans.lattice.replication meter
This page documents Orleans.Lattice.Dashboards 9.9.0, in the documentation for Orleans.Lattice 9.9.0 (release line 9.9), built 2026-10-04. It is also published as markdown, with every table and list, at orleans-lattice-replication-meter.md, and llms.txt lists every page.
Part of Metric-to-panel coverage map.
Every row in this table is charted by the Replication dashboard. The orleans.lattice.wal.* rows are core-meter (orleans.lattice) instruments, listed here because that dashboard charts them; a host that registers only orleans.lattice.replication exports none of them.
| Instrument | Type | Tags | Panel(s) |
|---|---|---|---|
orleans.lattice.replication.ship.duration |
histogram (ms) | tree, peer, outcome, tenant |
Ship duration p50/p95/p99 |
orleans.lattice.replication.apply.duration |
histogram (ms) | tree, peer, outcome, tenant |
Apply duration p50/p95/p99 |
orleans.lattice.replication.apply.lag |
histogram (ms) | tree, peer, tenant |
Apply lag p50/p95/p99; Apply lag p99 vs apply-buffer depth (causal-staging bistability overlay) |
orleans.lattice.replication.apply.dependency_wait |
histogram (ms) | tree, tenant |
Dependency wait p95 |
orleans.lattice.replication.wal.entries_shipped |
counter ({entry}) |
tree, peer, tenant |
WAL throughput; Log-tailing producer: leaf WAL append vs ship rate |
orleans.lattice.wal.entries_trimmed |
counter ({entry}) |
tree, shard, tenant |
WAL throughput; WAL GC trim stops by reason, whose second target keeps only the offset_floor stops on shards trimming nothing |
orleans.lattice.wal.compactions |
counter ({compaction}) |
tree, shard, trigger, tenant |
WAL compactions by trigger over range |
orleans.lattice.wal.compaction.reclaimed_bytes |
counter (By) |
tree, shard, tenant |
WAL bytes reclaimed by compaction over range |
orleans.lattice.wal.compaction.eval.retained_bytes |
histogram (By) |
tree, shard, tenant |
WAL compaction gate inputs - bytes per shard |
orleans.lattice.wal.compaction.eval.dead_bytes |
histogram (By) |
tree, shard, tenant |
WAL compaction gate inputs - bytes per shard |
orleans.lattice.wal.compaction.eval.retained_entries |
histogram ({entry}) |
tree, shard, tenant |
WAL compaction gate inputs - entries per shard |
orleans.lattice.wal.compaction.eval.dead_entries |
histogram ({entry}) |
tree, shard, tenant |
WAL compaction gate inputs - entries per shard |
orleans.lattice.wal.recovery.torn_tail_bytes |
counter (By) |
tree, shard, tenant |
WAL bytes discarded by activation-time recovery |
orleans.lattice.wal.recovery.torn_tail_records |
counter ({record}) |
tree, shard, tenant |
WAL records discarded by activation-time recovery |
orleans.lattice.replication.dead_letter.enqueued |
counter ({entry}) |
tree, reason, tenant |
Dead-letter queue churn |
orleans.lattice.replication.dead_letter.removed |
counter ({entry}) |
tree, reason, tenant |
Dead-letter queue churn |
orleans.lattice.replication.apply.fifo_violations |
counter ({entry}) |
tree, origin, tenant |
Apply correctness violations (rate). Diagnostic, not a correctness alarm: source HLCs are stamped per leaf, so a new write to a different key routinely applies below the highest HLC already applied for its origin (issue #1060), and a non-zero rate is expected; the entry is still applied |
orleans.lattice.replication.apply.causal_violations_blocked |
counter ({entry}) |
tree, tenant |
Apply correctness violations (rate) |
orleans.lattice.replication.peer.fell_off_log |
counter ({event}) |
tree, origin, tenant |
Peer fell-off-log events (count over range), grouped by origin and filtered by the tree selector; the instrument carries no peer label, so the peer selector does not apply |
orleans.lattice.replication.apply.buffered_entries |
up-down counter ({entry}) |
tree, shard, tenant |
Apply buffer (entries); Apply lag p99 vs apply-buffer depth (causal-staging bistability overlay) |
orleans.lattice.replication.apply.buffer_bytes |
up-down counter (By) |
tree, shard, tenant |
Apply buffer (bytes) |
orleans.lattice.replication.peer.entries_behind |
observable gauge ({entry}) |
tree, peer, tenant |
Per-peer entries behind |
orleans.lattice.replication.peer.bytes_behind |
observable gauge (By) |
tree, peer, tenant |
Per-peer bytes behind |
orleans.lattice.replication.peer.last_contact_seconds |
observable gauge (s) |
tree, peer, direction, tenant |
Per-peer last outbound ship (seconds ago); Per-peer last inbound apply (seconds ago) |
orleans.lattice.replication.peer.consecutive_errors |
observable gauge ({error}) |
tree, peer, direction, tenant |
Per-peer consecutive errors |
orleans.lattice.replication.wire_version.negotiated |
observable gauge ({version}) |
tree, peer, tenant |
Per-peer negotiated wire version |
orleans.lattice.replication.wire_version.downgrade_active |
observable gauge ({bool}) |
tree, peer, tenant |
Per-peer wire-version downgrade active (1 = mixed-version fleet) |
orleans.lattice.replication.digest_probe.compared |
counter ({comparison}) |
tree, shard, peer, outcome, tenant |
Anti-entropy digest-probe comparisons (rate, by outcome) |
orleans.lattice.replication.digest_probe.mismatch |
counter ({comparison}) |
tree, shard, peer, tenant |
Anti-entropy digest divergence (mismatch rate) |
orleans.lattice.replication.merkle_walk.localised |
counter ({leaf}) |
tree, depth, tenant |
Merkle-walk leaves localised |
orleans.lattice.replication.merkle_walk.aborted |
counter ({walk}) |
reason, tenant |
Merkle-walk aborted |
orleans.lattice.replication.ship.redundant_payloads |
counter ({entry}) |
tree, peer, tenant |
Redundant payload re-send rate |
orleans.lattice.replication.ship.redundant_payload_bytes |
counter (By) |
tree, peer, tenant |
Redundant payload re-send rate |
orleans.lattice.replication.ship.effective_batch_size |
histogram ({entry}) |
tree, peer, tenant |
Effective ship batch size (adaptive) |
orleans.lattice.replication.ship.ack_latency |
histogram (ms) | tree, peer, tenant |
Ship ack latency p50/p95/p99 |
orleans.lattice.replication.coalesce.entries_elided |
counter ({entry}) |
tree, peer, tenant |
Pre-ship coalescing elided rate |
orleans.lattice.replication.coalesce.bytes_elided |
counter (By) |
tree, peer, tenant |
Pre-ship coalescing elided rate |
orleans.lattice.replication.coalesce.deltas_merged |
counter ({delta}) |
tree, peer, tenant |
Pre-ship CRDT deltas merged (rate) |
orleans.lattice.replication.doorbell.rung |
counter ({ring}) |
tree, peer, tenant |
Shipper doorbell coalescing (rate) |
orleans.lattice.replication.doorbell.coalesced |
counter ({ring}) |
tree, peer, tenant |
Shipper doorbell coalescing (rate) |
orleans.lattice.replication.leaf_rereplay.entries |
counter ({entry}) |
tree, peer, tenant |
Leaf re-replay entries re-shipped (rate) |
orleans.lattice.replication.leaf_rereplay.skipped |
counter ({skip}) |
tree, peer, reason, tenant |
Leaf re-replay skipped (rate by reason) |
orleans.lattice.replication.apply.parallel_runs |
histogram ({run}) |
tenant |
Apply parallelism - runs per batch |
orleans.lattice.replication.peer.ship_in_flight |
observable gauge ({batch}) |
tree, peer, tenant |
Outbound batches in flight per peer |
orleans.lattice.replication.bootstrap.entries_received |
counter ({entry}) |
tree, origin, tenant |
Bootstrap throughput (rate) |
orleans.lattice.replication.bootstrap.bytes_received |
counter (By) |
tree, origin, tenant |
Bootstrap throughput (rate) |
orleans.lattice.replication.bootstrap.duration |
histogram (ms) | tree, origin, outcome, tenant |
Bootstrap duration p50/p95/p99 |
orleans.lattice.replication.bootstrap.transient_retries |
counter ({retry}) |
tree, origin, tenant |
Bootstrap transient retries (rate) |
orleans.lattice.replication.peer.fell_off_log_suppressed |
counter ({event}) |
tree, origin, tenant |
Fall-off-log suppressed events (rate) |
orleans.lattice.replication.bootstrap_fallback.triggered |
counter ({fallback}) |
tree, peer, tenant |
Bootstrap fallback triggered (rate) |
orleans.lattice.replication.bootstrap_fallback.entries |
counter ({entry}) |
tree, peer, tenant |
Bootstrap fallback entries re-shipped (rate) |
orleans.lattice.replication.bootstrap_fallback.skipped |
counter ({skip}) |
tree, peer, reason, tenant |
Bootstrap fallback skipped (rate by reason) |
orleans.lattice.replication.digest_remediation.disabled |
observable gauge ({state}) |
tree, peer, reason, tenant |
Remediation disabled (tree/peer by reason) |
orleans.lattice.replication.digest_remediation.skipped |
counter ({skip}) |
tree, peer, reason, tenant |
Remediation skipped (rate by reason) |
orleans.lattice.replication.compress.dictionary.bytes_in |
counter (By) |
tree, tenant |
Shared-dictionary compression ratio (before/after) |
orleans.lattice.replication.compress.dictionary.bytes_out |
counter (By) |
tree, tenant |
Shared-dictionary compression ratio (before/after) |
orleans.lattice.replication.ship.elided_payloads |
counter ({entry}) |
tree, peer, tenant |
Content-hash payload elision (rate) |
orleans.lattice.replication.ship.elided_payload_bytes |
counter (By) |
tree, peer, tenant |
Content-hash payload elision (rate) |
orleans.lattice.replication.ship.manifest_exchanges |
counter ({exchange}) |
tree, peer, tenant |
Content-hash manifest exchanges (rate) |
orleans.lattice.replication.ship.dictionary_negotiation |
counter ({negotiation}) |
tree, peer, outcome, tenant |
Shared-dictionary negotiation outcomes (rate) |
orleans.lattice.replication.ship.dictionary_batches |
counter ({batch}) |
tree, peer, dictionary, tenant |
Batches shipped with vs without a shared dictionary (rate) |
orleans.lattice.replication.ship.dictionary_convergence |
counter ({pull}) |
tree, peer, outcome, tenant |
Shared-dictionary convergence pulls (rate) |
orleans.lattice.replication.ship.wire_version_down_stamp |
counter ({batch}) |
tree, peer, reason, tenant |
Wire-version down-stamp outcomes (rate by reason) |
orleans.lattice.replication.receiver.content_manifest_exchanges |
counter ({exchange}) |
tree, peer, tenant |
Receiver content-hash exchanges handled (rate) |
orleans.lattice.replication.receiver.content_entries_elided |
counter ({entry}) |
tree, peer, tenant |
Receiver content entries elided (rate) |
orleans.lattice.replication.receiver.content_hwm_advances |
counter ({advance}) |
tree, peer, tenant |
Receiver metadata-only HWM advances (rate) |
orleans.lattice.replication.saga.phase.duration |
histogram (ms) | phase, tenant |
Coordinated restore: saga phase and write-fence durations (p95, ms) |
orleans.lattice.replication.saga.fence.duration |
histogram (ms) | tree, tenant |
Coordinated restore: saga phase and write-fence durations (p95, ms) |
orleans.lattice.replication.saga.participant.votes |
counter ({vote}) |
reason, tenant |
Coordinated restore: participant votes, commits and aborts (rate) |
orleans.lattice.replication.saga.participant.commits |
counter ({commit}) |
reason, tenant |
Coordinated restore: participant votes, commits and aborts (rate) |
orleans.lattice.replication.saga.participant.aborts |
counter ({abort}) |
reason, tenant |
Coordinated restore: participant votes, commits and aborts (rate) |
orleans.lattice.replication.saga.compensations |
counter ({compensation}) |
cause, tenant |
Coordinated restore: saga compensations (rate by cause) |