Skip to content

Conversation

@renaynay
Copy link
Member

@renaynay renaynay commented Oct 22, 2025

Adds to exchange:

downloadDuration        metric.Float64Histogram
edsConstructionDuration metric.Float64Histogram
edsStorageDuration      metric.Float64Histogram

Adds to fetcher:

receiveBlockDuration metric.Float64Histogram

@renaynay renaynay self-assigned this Oct 22, 2025
@renaynay renaynay added area:core_and_app Relationship with Core node and Celestia-App kind:refactor Attached to refactoring PRs labels Oct 22, 2025
@renaynay renaynay requested a review from gupadhyaya as a code owner October 22, 2025 10:46
@github-actions github-actions bot added the kind:break! Attached to breaking PRs label Oct 22, 2025
core/fetcher.go Outdated
isLast = resp.IsLast
}

f.metrics.observeReceiveBlock(ctx, time.Since(start), len(parts))
Copy link
Member Author

Choose a reason for hiding this comment

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

BTW - the majority of download time (exchange metric) is actually spent here so I'm not 100% sure we need both exchange block download time and fetcher receive block time.

Copy link
Member Author

Choose a reason for hiding this comment

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

it would be good to keep it actually to observe departure in case it happens.

walldiss
walldiss previously approved these changes Oct 30, 2025
Comment on lines 49 to 54
// numPartsAttribute creates an attribute for the number of parts in a block.
// This can be used to approximate the block size (with each part being roughly
// 64KB).
func numPartsAttribute(numParts int) attribute.KeyValue {
return attribute.Int("num_parts", numParts)
}
Copy link
Member

Choose a reason for hiding this comment

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

Seems a bit too much to have a function for that. It adds extra nesting

Copy link
Member Author

Choose a reason for hiding this comment

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

Oh it's a relic where i was actually trying to do some math there to reduce cardinality but it's fine to just do numParts as int attribute i think.

@renaynay renaynay changed the base branch from release/v0.28.0 to main October 30, 2025 17:34
@renaynay renaynay dismissed walldiss’s stale review October 30, 2025 17:34

The base branch was changed.

@renaynay renaynay requested a review from walldiss October 30, 2025 17:38
Copy link
Member

@walldiss walldiss left a comment

Choose a reason for hiding this comment

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

Given that otel does no support proper buckets setup, those might not bring as much value as expected. Like all time events might get recorded as same bucket. I would suggest to try to add traces for same events and compare avarages, to verify that metrics are accurate here

@renaynay renaynay marked this pull request as draft October 31, 2025 15:26
@renaynay
Copy link
Member Author

renaynay commented Nov 3, 2025

@walldiss
Why wouldn't you be able to use a query like

rate(core_ex_total_blocks_processed{eds_size="64"}[1m])

to view metrics by eds_size ? I'm not sure what you mean by otel doesn't support proper buckets setup.

@renaynay
Copy link
Member Author

renaynay commented Nov 3, 2025

@walldiss new dashboard for total # blocks/sec for BN syncing

Screenshot 2025-11-03 at 13 18 40

and one grouped by eds_size
Screenshot 2025-11-03 at 13 19 51

(looks bad rn bc validator i'm connected to got stuck, but you get the picture)

@renaynay renaynay marked this pull request as ready for review November 3, 2025 12:23
@walldiss
Copy link
Member

walldiss commented Nov 3, 2025

When referring to buckets I was talking about usage of Histograms to track time. 3/4 of new metrics try to track time and my point is that it will most likely not do this. However as you pointed out tracking rate is possible through counter of events.

@renaynay renaynay enabled auto-merge November 6, 2025 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:core_and_app Relationship with Core node and Celestia-App kind:break! Attached to breaking PRs kind:refactor Attached to refactoring PRs performance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants