Skip to content

Add get_payload_delivery_failure metric for relay-side misses - #790

Merged
bakhtin merged 1 commit into
mainfrom
ab-get_payload_delivery_failure-metric
Jul 23, 2026
Merged

Add get_payload_delivery_failure metric for relay-side misses#790
bakhtin merged 1 commit into
mainfrom
ab-get_payload_delivery_failure-metric

Conversation

@bakhtin

@bakhtin bakhtin commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Introduce a get_payload_delivery_failure counter with a reason label to track slots where the relay committed a bid via getHeader but then failed to fulfill the payload in getPayload. This isolates genuine relay-side failures from the existing get_payload_count{status="error"}, which conflates them with proposer-side faults.

Reasons counted:

  • payload_not_found: an eligible bid existed but the execution payload was gone/unreadable, or a datastore error occurred during retrieval
  • publish_failed: all beacon nodes failed to publish the block (incremented in both the V1 synchronous and V2 async publish paths)
  • internal_error: could not build the beacon block from our own payload

Proposer-side faults are deliberately excluded (bad signature, sent too late, duplicate/already-delivered, wrong relay, below-floor bids), so the metric reflects only failures the relay is responsible for.

📝 Summary

⛱ Motivation and Context

📚 References


✅ I have run these commands

  • make lint
  • make test-race
  • go mod tidy
  • I have seen and agree to CONTRIBUTING.md

Introduce a `get_payload_delivery_failure` counter with a `reason` label
to track slots where the relay committed a bid via getHeader but then
failed to fulfill the payload in getPayload. This isolates genuine
relay-side failures from the existing get_payload_count{status="error"},
which conflates them with proposer-side faults.

Reasons counted:
- payload_not_found: an eligible bid existed but the execution payload
  was gone/unreadable, or a datastore error occurred during retrieval
- publish_failed: all beacon nodes failed to publish the block
  (incremented in both the V1 synchronous and V2 async publish paths)
- internal_error: could not build the beacon block from our own payload

Proposer-side faults are deliberately excluded (bad signature, sent too
late, duplicate/already-delivered, wrong relay, below-floor bids), so the
metric reflects only failures the relay is responsible for.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Signed-off-by: bakhtin <a@bakhtin.net>
@bakhtin
bakhtin merged commit 7c9e7dd into main Jul 23, 2026
5 checks passed
@bakhtin
bakhtin deleted the ab-get_payload_delivery_failure-metric branch July 23, 2026 10:50
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