Skip to content

Bound metric routes and honor configured recorder selection - #206

Merged
rmcdaniel merged 10 commits into
mainfrom
fix/bounded-metric-routes
Oct 23, 2026
Merged

rmcdaniel merged 10 commits into
mainfrom
fix/bounded-metric-routes

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Client metric labels currently retain variable task/session identifiers, and valid recorders that evaluate to false are silently replaced by the no-op. Normalize supported routes with reviewed templates and one unknown fallback, retain static /poll routes, and use None alone to select default/client/worker recorders. Metric names, instrument types, units and required tag keys stay compatible.

Tests exercise actual request and worker recorder hooks against the exact shared JSON contract, pinned to merged .github commit 73e8fc323e4f46322945a007e54a546395904f79 and SHA-256 c456f4f434c601fa26f0caba07ef0fd29f548ca8f5fc29ba2f6430f01e32c0f0. They cover bounded public-API routes, query privacy, transport retries, poll outcomes, all supported dispatch kinds, inheritance/override, false-valued recorders, no-op and actual Prometheus samples. Existing supported-version jobs install the Prometheus extra; trust bootstrap, guards, permissions and timeouts are unchanged.

Addresses #205 and the Python adoption slice of durable-workflow/.github#233. #167 cancellation/log/retry taxonomy stays separate. Unchanged source produces 19 route failures/10 passing controls, and six recorder-selection failures/six normal-recording passes. Corrected source 9e579edf passes 69 focused controls plus the fresh full Python 3.12 suite: 3,201 pass / two skips / 105 integration deselections / one existing fork warning, 136.32 seconds. Ruff and mypy on 37 source files pass. Current-target merge 225f35f incorporates main 6752909e; the combined metric/backoff controls pass 123 tests. Fresh whole-head hosted qualification remains required.

The earlier interrupted full run remains unsuccessful: five process-readiness timeouts, 141 passes, 105 deselections and 374.36 seconds before SIGINT during a stalled join control. Its isolated module has three failures/six passes; a non-metrics control also times out. Read-only observations show late bootstrap before the unchanged five-second readiness limit, without establishing its cause. The fresh pass does not rescue those originals.

Guidance marks the changed behavior as unreleased. Compatible publication, normally installed adapter acceptance and removing the notices remain required after the existing #197 registry-side setup clears. No release tag or version change is included.

@rmcdaniel rmcdaniel changed the title Bound client metric routes and verify shared SDK observations Bound metric routes and honor configured recorder selection Oct 23, 2026
@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel merged commit 4c79bc4 into main Oct 23, 2026
18 checks passed
@rmcdaniel
rmcdaniel deleted the fix/bounded-metric-routes branch October 23, 2026 10:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant