Skip to content

Conversation

@jrhea
Copy link
Contributor

@jrhea jrhea commented Dec 17, 2025

⚠️ Note

This PR depends on generic OpenTelemetry tracing being available in the JSON-RPC server. That work can be tracked in PR #33452. Once it lands, this PR can be rebased and updated to build Engine API specific spans on top of the generic RPC tracing.

No further review needed at this time.


This PR adds initial OpenTelemetry tracing to the Engine API, focusing on engine_newPayload*.

Scope

  • Engine API only
  • Root spans are created at Engine API entrypoints (NewPayloadV*)
  • Child spans for payload decoding and block import

Notes

  • Currently uses a synchronous exporter with AlwaysSample (temporary).
  • No CLI flags or lifecycle shutdown wiring yet

Questions

  • For eventual per-transaction spans under engine_newPayload, should we adapt the existing core/tracing.Hooks (e.g. OnTxStart / OnTxEnd) into OpenTelemetry spans?
  • Should validation failures (e.g. “withdrawals not supported in V1”, etc.) be recorded as span errors?
  • What sampling methodology should we use?

Validation

Tested locally using SigNoz. Example trace from engine_newPayload:

image

@jrhea jrhea changed the title engine: add initial OpenTelemetry tracing for Engine API newPayload eth/catalyst: add initial OpenTelemetry tracing for Engine API newPayload Dec 17, 2025
@jrhea jrhea force-pushed the engine-otel-tracing branch from 0620263 to fc7ea9c Compare December 18, 2025 02:40
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