From dc13e9d68051d71f97b41e3d5cc27562934b0ef6 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Fri, 24 Apr 2026 20:08:52 +0100 Subject: [PATCH] fix: populate baseline from CI run, remove dead rpc_methods metrics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Populate baselines/baseline-timings.json from the green CI run (24906110133, commit f11ebc1253). 25/31 metrics have non-null values; 6 span.rpc.* are null due to sparse data in the 3m window. Remove the rpc_methods section from regression-metrics.json and its thresholds. rippled_rpc_method_duration_us_bucket is never populated because PerfLogImp::rpcEnd never calls MetricsRegistry::recordRpcFinished — only recordRpcStarted is wired up (Phase 9 instrumentation gap). The span-based rpc.request/rpc.process metrics via spanmetrics already cover RPC latency. --- .../workload/baselines/baseline-timings.json | 137 +++++++++++++++++- .../workload/regression-metrics.json | 6 - .../workload/regression-thresholds.json | 4 - 3 files changed, 130 insertions(+), 17 deletions(-) diff --git a/docker/telemetry/workload/baselines/baseline-timings.json b/docker/telemetry/workload/baselines/baseline-timings.json index 9fe3c1f6ad..6b898fd95d 100644 --- a/docker/telemetry/workload/baselines/baseline-timings.json +++ b/docker/telemetry/workload/baselines/baseline-timings.json @@ -1,10 +1,133 @@ { - "_comment": "Empty baseline placeholder. The first CI run of the regression gate will emit the captured timings JSON to the workflow step summary; copy that JSON over this file (in a PR) to activate the regression gate. See baselines/README.md.", - "placeholder": true, + "captured_at": "2026-04-24T18:58:51Z", + "git_sha": "f11ebc1253cfed8bc2a80647ceead1a17d73f1d8", + "metrics": { + "job.acceptLedger.queued.p95": { + "unit": "us", + "value": 64.04761904761904 + }, + "job.acceptLedger.running.p95": { + "unit": "us", + "value": 2494.718309859155 + }, + "job.transaction.queued.p95": { + "unit": "us", + "value": 325.86206896551664 + }, + "job.transaction.running.p95": { + "unit": "us", + "value": 246.37440758293837 + }, + "span.consensus.accept.p50": { + "unit": "ms", + "value": 0.5 + }, + "span.consensus.accept.p95": { + "unit": "ms", + "value": 0.9500000000000001 + }, + "span.consensus.accept.p99": { + "unit": "ms", + "value": 0.99 + }, + "span.consensus.ledger_close.p50": { + "unit": "ms", + "value": 0.5016949152542373 + }, + "span.consensus.ledger_close.p95": { + "unit": "ms", + "value": 0.9532203389830508 + }, + "span.consensus.ledger_close.p99": { + "unit": "ms", + "value": 0.9933559322033899 + }, + "span.ledger.build.p50": { + "unit": "ms", + "value": 0.5227272727272728 + }, + "span.ledger.build.p95": { + "unit": "ms", + "value": 0.9931818181818184 + }, + "span.ledger.build.p99": { + "unit": "ms", + "value": 4.079999999999999 + }, + "span.ledger.store.p50": { + "unit": "ms", + "value": 0.5 + }, + "span.ledger.store.p95": { + "unit": "ms", + "value": 0.9499999999999998 + }, + "span.ledger.store.p99": { + "unit": "ms", + "value": 0.99 + }, + "span.ledger.validate.p50": { + "unit": "ms", + "value": 0.5016891891891893 + }, + "span.ledger.validate.p95": { + "unit": "ms", + "value": 0.9532094594594595 + }, + "span.ledger.validate.p99": { + "unit": "ms", + "value": 0.9933445945945946 + }, + "span.rpc.process.p50": { + "unit": "ms", + "value": null + }, + "span.rpc.process.p95": { + "unit": "ms", + "value": null + }, + "span.rpc.process.p99": { + "unit": "ms", + "value": null + }, + "span.rpc.request.p50": { + "unit": "ms", + "value": null + }, + "span.rpc.request.p95": { + "unit": "ms", + "value": null + }, + "span.rpc.request.p99": { + "unit": "ms", + "value": null + }, + "span.tx.apply.p50": { + "unit": "ms", + "value": 0.5173010380622838 + }, + "span.tx.apply.p95": { + "unit": "ms", + "value": 0.9828719723183392 + }, + "span.tx.apply.p99": { + "unit": "ms", + "value": 3.8039999999999976 + }, + "span.tx.process.p50": { + "unit": "ms", + "value": 0.5 + }, + "span.tx.process.p95": { + "unit": "ms", + "value": 0.95 + }, + "span.tx.process.p99": { + "unit": "ms", + "value": 0.99 + } + }, + "profile": "full-validation", "schema_version": 1, - "captured_at": null, - "window": null, - "git_sha": null, - "profile": null, - "metrics": {} + "window": "3m" } diff --git a/docker/telemetry/workload/regression-metrics.json b/docker/telemetry/workload/regression-metrics.json index 07cbd1ac0a..b4dabf852d 100644 --- a/docker/telemetry/workload/regression-metrics.json +++ b/docker/telemetry/workload/regression-metrics.json @@ -17,12 +17,6 @@ "consensus.accept" ] }, - "rpc_methods": { - "_query_template": "histogram_quantile({quantile}, sum by (le) (rate(rippled_rpc_method_duration_us_bucket{method=\"{name}\"}[{window}])))", - "_unit": "us", - "_quantiles": [0.95, 0.99], - "names": ["server_info", "account_info", "ledger", "fee", "tx"] - }, "job_queue": { "_queued_template": "histogram_quantile({quantile}, sum by (le) (rate(rippled_job_queued_duration_us_bucket{job_type=\"{name}\"}[{window}])))", "_running_template": "histogram_quantile({quantile}, sum by (le) (rate(rippled_job_running_duration_us_bucket{job_type=\"{name}\"}[{window}])))", diff --git a/docker/telemetry/workload/regression-thresholds.json b/docker/telemetry/workload/regression-thresholds.json index 176fd87669..ae955fa37f 100644 --- a/docker/telemetry/workload/regression-thresholds.json +++ b/docker/telemetry/workload/regression-thresholds.json @@ -6,10 +6,6 @@ "p95": { "max_pct_increase": 10.0, "max_abs_increase_ms": 3.0 }, "p99": { "max_pct_increase": 10.0, "max_abs_increase_ms": 5.0 } }, - "rpc_method": { - "p95": { "max_pct_increase": 10.0, "max_abs_increase_us": 3000.0 }, - "p99": { "max_pct_increase": 10.0, "max_abs_increase_us": 5000.0 } - }, "job_queue": { "p95": { "max_pct_increase": 15.0, "max_abs_increase_us": 5000.0 } }