From bf2f81e02f64600196a3982a8b1213b7d930c856 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:56:42 +0100 Subject: [PATCH 1/4] fixed clang-tidy issue Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> --- src/xrpld/rpc/detail/ServerHandler.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/xrpld/rpc/detail/ServerHandler.cpp b/src/xrpld/rpc/detail/ServerHandler.cpp index 1e9fbf2dc0..335d44b7a1 100644 --- a/src/xrpld/rpc/detail/ServerHandler.cpp +++ b/src/xrpld/rpc/detail/ServerHandler.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include #include From 789a8f54765e5c1a9985663dacb6a98cf168ea21 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:58:52 +0100 Subject: [PATCH 2/4] docs(telemetry): use snake_case build_info namespace in resource-attr table develop renamed CamelCase namespaces to snake_case (#7933), so BuildInfo::getVersionString() is now build_info::getVersionString(). --- OpenTelemetryPlan/02-design-decisions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenTelemetryPlan/02-design-decisions.md b/OpenTelemetryPlan/02-design-decisions.md index b26b26b461..f3289c68e9 100644 --- a/OpenTelemetryPlan/02-design-decisions.md +++ b/OpenTelemetryPlan/02-design-decisions.md @@ -218,7 +218,7 @@ keys (the dotted form is reserved for resource scope per §2.3.3). | Key | Type / value | Description | | --------------------- | ------------------------------------------------------- | ------------------------------ | | `service.name` | `"xrpld"` | Standard `SERVICE_NAME` | -| `service.version` | `BuildInfo::getVersionString()` | Standard `SERVICE_VERSION` | +| `service.version` | `build_info::getVersionString()` | Standard `SERVICE_VERSION` | | `service.instance.id` | node public key (base58) | Standard `SERVICE_INSTANCE_ID` | | `xrpl.network.id` | network id (e.g. 0 for mainnet) | Network identifier | | `xrpl.network.type` | `"mainnet"` \| `"testnet"` \| `"devnet"` \| `"unknown"` | Network kind | From 687d2f7f81d6e34a45ed35c1a4ac639a32fd89d4 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:59:12 +0100 Subject: [PATCH 3/4] docs(telemetry): use snake_case tuning namespace in getobject aggregation note develop renamed CamelCase namespaces to snake_case (#7933), so Tuning::kHardMaxReplyNodes is now tuning::kHardMaxReplyNodes. --- OpenTelemetryPlan/09-data-collection-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenTelemetryPlan/09-data-collection-reference.md b/OpenTelemetryPlan/09-data-collection-reference.md index 7fe5ebf1da..3447718567 100644 --- a/OpenTelemetryPlan/09-data-collection-reference.md +++ b/OpenTelemetryPlan/09-data-collection-reference.md @@ -713,7 +713,7 @@ attributable to a stage rather than merely observed. **Aggregation.** `getobject_lookup_us` times the fetch loop once per request, and `getobject_lookups_total` is added once per request carrying the batch hit and miss totals. The -loop is bounded by `Tuning::kHardMaxReplyNodes` (12288), so timing or counting each iteration +loop is bounded by `tuning::kHardMaxReplyNodes` (12288), so timing or counting each iteration would cost more than the lookups it measures. `getobject_request_objects` records the requested count, which is what the charge bands price on. `getobject_charge` records only the dynamic component returned by `computeGetObjectByHashFee()`; the admission-time base charge is a constant. From 06f44e65407689169bc22188b6b8aa34f3298274 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:59:33 +0100 Subject: [PATCH 4/4] docs(telemetry): use snake_case tuning/resource namespaces in getobject bucket notes develop renamed CamelCase namespaces to snake_case (#7933): Tuning:: -> tuning:: and Resource:: -> resource::. --- OpenTelemetryPlan/09-data-collection-reference.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenTelemetryPlan/09-data-collection-reference.md b/OpenTelemetryPlan/09-data-collection-reference.md index ffaa9d307d..e3b8af958b 100644 --- a/OpenTelemetryPlan/09-data-collection-reference.md +++ b/OpenTelemetryPlan/09-data-collection-reference.md @@ -1361,7 +1361,7 @@ macros, not as `MetricsRegistry` members: the two rejection counters in **Per request, not per object.** `getobject_lookup_us` times the whole fetch loop once, and `getobject_lookups_total` adds the batch hit and miss totals in two calls. Incrementing per object on a loop bounded by -`Tuning::kHardMaxReplyNodes` (12288) would cost measurably and add no +`tuning::kHardMaxReplyNodes` (12288) would cost measurably and add no information the batch totals do not already carry. **All three histograms need an explicit bucket view.** The SDK's default @@ -1387,7 +1387,7 @@ observation in one or two buckets and make the distribution unreadable. `addHistogramView()` exists to take caller-supplied boundaries for exactly this case. -- **Counts** run 1 to `Tuning::kHardMaxReplyNodes` (12288). The low end is +- **Counts** run 1 to `tuning::kHardMaxReplyNodes` (12288). The low end is fine-grained because the honest sync path asks for at most 8 objects, so the interesting distinction is between a normal request and a large one. The upper bounds follow the charge size bands — `kBandSmallMax` (64) and @@ -1395,7 +1395,7 @@ case. with each price change. - **Charges** run 0 to roughly 99k for a full-size all-miss request. Two of the boundaries are the resource thresholds that decide a peer's fate: - `Resource::kWarningThreshold` (5000) and `Resource::kDropThreshold` (25000), + `resource::kWarningThreshold` (5000) and `resource::kDropThreshold` (25000), both in `include/xrpl/resource/detail/Tuning.h`. Placing bucket edges exactly there lets a panel read off how close real charges run to a warning or a drop, rather than interpolating across an edge.