Skip to content

eth/catalyst: add initial OpenTelemetry tracing for newPayload#33521

Merged
fjl merged 21 commits intoethereum:masterfrom
jrhea:engine-otel-tracing
Feb 17, 2026
Merged

eth/catalyst: add initial OpenTelemetry tracing for newPayload#33521
fjl merged 21 commits intoethereum:masterfrom
jrhea:engine-otel-tracing

Conversation

@jrhea
Copy link
Copy Markdown
Contributor

@jrhea jrhea commented Jan 3, 2026

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

jsonrpc.engine/newPayloadV4 
|  |- engine.newPayload  [block.number, block.hash, tx.count]
|     |- core.blockchain.InsertBlockWithoutSetHead
|        |- bc.processor.Process
|        |  |- core.ApplyTransactionWithEVM  [tx.hash, tx.index]
|        |  |- core.ApplyTransactionWithEVM  [tx.hash, tx.index]
|        |  |- ...  (one per transaction)
|        |  |- core.postExecution
|        |- bc.validator.ValidateState

@jrhea jrhea force-pushed the engine-otel-tracing branch 3 times, most recently from 1895a15 to ffe8de3 Compare January 4, 2026 23:49
@jrhea jrhea force-pushed the engine-otel-tracing branch from bff3829 to 4b13763 Compare January 14, 2026 18:58
@jrhea jrhea marked this pull request as ready for review January 14, 2026 21:39
@fjl fjl added this to the 1.17.0 milestone Jan 15, 2026
@jrhea jrhea force-pushed the engine-otel-tracing branch from 8bf89c7 to 2c270e2 Compare January 16, 2026 19:40
@jrhea jrhea requested a review from rjl493456442 as a code owner January 17, 2026 04:12
@jrhea jrhea force-pushed the engine-otel-tracing branch from ce41bcc to 5731ca5 Compare January 17, 2026 21:08
@jrhea jrhea force-pushed the engine-otel-tracing branch from 9c009cb to 0d2fc33 Compare January 18, 2026 03:49
Copy link
Copy Markdown
Member

@MariusVanDerWijden MariusVanDerWijden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment on lines 119 to 134
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we also get a span for the post-block system calls?

Copy link
Copy Markdown
Contributor Author

@jrhea jrhea Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want a span for each one? Would any specific attributes be helpful?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's OK to have a span for all of them at once. In order to make this work, we should move the system calling into its own method and start a span at top, then end it with defer.

@jrhea jrhea force-pushed the engine-otel-tracing branch from 75aa685 to 65b6b78 Compare February 3, 2026 22:37
jrhea

This comment was marked as resolved.

@jrhea jrhea force-pushed the engine-otel-tracing branch from 84960cb to 65b6b78 Compare February 6, 2026 19:00
@jrhea jrhea force-pushed the engine-otel-tracing branch from f6bd3f7 to fee1233 Compare February 14, 2026 19:51
fjl added 2 commits February 17, 2026 13:35
Refactor error handling and request initialization in postExecution.
var requests [][]byte
if config.IsPrague(block.Number(), block.Time()) {
requests = [][]byte{}
var requests [][]byte
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fjl This is the line that breaks blockchain tests. For some reason, it is expected to return a non-nil requests list post-prague if there are no requests.

Seems to do with the hash of a nil requests not matching that of an empty one.

@fjl fjl merged commit c709c19 into ethereum:master Feb 17, 2026
5 of 6 checks passed
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.

4 participants