Skip to content

feat(feed): trace individual consensus votes for observability#3134

Closed
decofe wants to merge 1 commit intomainfrom
yk/trace-individual-votes
Closed

feat(feed): trace individual consensus votes for observability#3134
decofe wants to merge 1 commit intomainfrom
yk/trace-individual-votes

Conversation

@decofe
Copy link
Member

@decofe decofe commented Mar 15, 2026

Summary

Emit handle_activity spans for individual Notarize/Finalize/Nullify votes so valscope can show per-validator vote flow timing.

Motivation

Valscope #127 added vote flow visibility, but joshie pointed out that from_participant is always None because the feed actor only traced certificate activities (Notarization/Finalization), not individual votes. Certificates are aggregated quorum proofs without individual sender attribution.

Individual votes carry an attestation.signer: Participant(N) which identifies the voting validator — exactly what we need for vote flow observability.

Changes

  • crates/commonware-node/src/feed/actor.rs: emit an info_span!("handle_activity", activity = ?activity) for individual vote activities before dropping them (the feed actor still only processes certificates for block resolution)

How it works

The simplex engine's batcher reports every peer vote (Activity::Notarize, Activity::Finalize, Activity::Nullify) to the feed actor. Previously these were silently dropped. Now they emit a tracing span with the same handle_activity name and activity attribute, making them discoverable by valscope's TraceQL query.

The debug output includes Participant(N) which valscope's existing regex (Participant\\(\\d+\\)) already parses.

Testing

  • cargo check -p tempo-commonware-node passes

Co-Authored-By: YK 46377366+yongkangc@users.noreply.github.com

Prompted by: yk

The feed actor now emits handle_activity spans for individual
Notarize/Finalize/Nullify votes (not just certificates). This enables
valscope's vote flow panel to show per-validator vote timing with
from_participant attribution.

Co-Authored-By: YK <46377366+yongkangc@users.noreply.github.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019cef62-f67c-71ab-a6d5-f86d1f6b43e1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants