Conversation
Signed-off-by: Cody Littley <cody.littley@seinetwork.io>
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3047 +/- ##
==========================================
- Coverage 58.61% 58.58% -0.03%
==========================================
Files 2090 2090
Lines 172771 172771
==========================================
- Hits 101262 101211 -51
- Misses 62532 62567 +35
- Partials 8977 8993 +16
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
cody-littley
left a comment
There was a problem hiding this comment.
LGTM, pending review of dashboard changes.
| var receiptWriteLatencyBuckets = []float64{ | ||
| 0.001, 0.0025, 0.005, 0.0075, 0.01, | ||
| 0.015, 0.02, 0.03, 0.05, 0.075, | ||
| 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, | ||
| } |
There was a problem hiding this comment.
We'll want to eventually replace this block with the one defined in https://github.com/sei-protocol/sei-chain/blob/fe31475c4e295d695ee7f09fcbfefea9f39e7032/sei-db/common/metrics/buckets.go
The buckets.go linked above isn't merged yet, so no need to block this PR. Just mentioning this so we don't forget to do it later.
| m.mainThreadPhase.SetPhase(phase) | ||
| } | ||
|
|
||
| func (m *CryptosimMetrics) RecordReceiptBlockWriteDuration(seconds float64) { |
There was a problem hiding this comment.
Would it be possible to change the parameter to latency time.Duration, then convert it to seconds internally in this method? In general, I think it's cleaner to pass around time quantities as durations when possible, since it reduces the chances of accidentally messing up the units. There are a few rare exceptions to this rule, e.g. we probably want to use non-duration values in config files. But when we are measuring latencies, the duration type is good to use.
Describe your changes and provide context
RecieptStoreSimulatorthat consumes generated receipts and writes them to a parquet store with WAL, flush, rotation, and pruning — matching the real node's write pathReceiptKeepRecent,ReceiptPruneIntervalSeconds,ReceiptMaxBlocksPerFile,ReceiptBlockFlushIntervalreceipt_block_write_duration_seconds(histogram),receipt_channel_depth(gauge),receipts_written_total(counter),receipt_errors_total(counter)blockBuilder) so transaction generation doesn't block the main execution loopSet
"GenerateReceipts": trueto enable. Seeconfig/reciept-store.jsonfor an example config. All receipt store tuning parameters have production-matching defaults and can be left unset.Testing performed to validate your change
unit tests + running cryptosim simulation