feat(dashboard): improve java-tron Grafana dashboards usability - #126
Open
warku123 wants to merge 2 commits into
Open
feat(dashboard): improve java-tron Grafana dashboards usability#126warku123 wants to merge 2 commits into
warku123 wants to merge 2 commits into
Conversation
…boards - java-tron-server: add 24 panels (TPS breakdown, block fork/miss change, SR block latency, block process latency from broadcast, block fetch latency, transaction process latency by contract, low-transaction-block table, per-DB level panels, JVM memory usage rate, storage overview); fix Transaction Process Latency expression (rate + type=block + group/instance filters); fix Block Push Latency avg (add missing /rate(count)); expand SR Set row with range-based add/remove semantics; drop panels superseded by better equivalents (P95/P99 Block Transaction Count, Avg Transactions per Block, legacy Transaction TPS, Block Process Latency, Memory Usage Rate, System section) - java-tron-api/mechanism: cascade instance variable by group - java-tron-api: panel 99 HTTP QPS interval 1s -> 60s - java-tron-api-statistic: add instance variable for parity
…e filter to TCP Traffic - DB size panels: remove type="LEVELDB" so RocksDB-backed instances render - TCP Traffic Rate/s: scope by group+instance to avoid cross-instance legend mixing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Improves the java-tron Grafana dashboard templates with more useful panels, expression fixes, and removal of panels that don't work well in practice.
java-tron-server.json(46 → 69 panels):irate→rate(irate only uses the last two scrape points and produces spiky, noisy curves), restores thetype="block"filter (without it, every contract renders two same-named series — thetrxbroadcast pre-execution path and theblockin-block path — making the legend unreadable), and addsgroup/instancescoping./ rate(..._count[...])divisor, so the "avg" series was actually avg × block rate.$__range-windowed semantics (increase(...)[$__range]), so they show SR changes within the selected time range instead of monotonically growing counters; drops the arbitrary 5/10 thresholds.P95/P99 Block Transaction Count(per-miner quantiles degenerate to single-sample noise — each SR produces ~1 block per 81s, shorter than the typical rate window — and the 300/500/2000 bucket granularity makes P99 interpolation meaningless),Avg Transactions per Block(redundant withTransaction Cnt Per Block), 4 legacy Transaction TPS panels (replaced by the TPS breakdown), the old Block Process Latency panel (replaced by "From Broadcast"), and the System row (OS metrics are covered by the Node Exporter Full dashboard).type="LEVELDB"filter (9 panels) so RocksDB-backed instances render data.group/instancescoping to avoid cross-instance legend mixing.java-tron-api.json/java-tron-mechanism.json:instancevariable now cascades fromgroup(label_values({group="$group"}, instance)); api panel 99 scrape interval fixed from1sto60s.java-tron-api-statistic.json: adds aninstancevariable for parity with the other dashboards.Why are these changes required?
Several existing panels have expression bugs (missing divisor, missing filters, noisy
irate) or rely on metric semantics that don't produce useful output (per-miner quantiles, cumulative counters). The new panels cover gaps operators frequently need: per-miner block quality, TPS composition, DB growth per level, and SR set churn.This PR has been tested by:
Extra details
$group,$instance,$__rate_interval).tron:block_transaction_count,tron:sr_set_change,tron:db_size_bytes, etc.) — no java-tron changes required.