Description
Measure-first attribution for slow shared-limiter polling. No throughput, packing, interval or limiter-rate change is authorised.
Acceptance Criteria
- #1 Every physical Cloudflare HTTP request counted once and timed on cf2otel.api.requests and cf2otel.api.duration, plus cf2otel.api.limiter_wait histogram in seconds. Only collector context name (unattributed fallback), rest/graphql method and failure-only error class attributes.
- #2 Small injected cfapi observer, OTLP only in telemetry; semconv declarations and signal documentation complete.
- #3 Registered two-collector fake-upstream slow-limiter reproduction fails on base and passes on candidate with per-collector counts and nonzero waits; existing cfapi and collector tests unchanged and passing.
- #4 just check and race count3 pass; pre-land security and CodeRabbit accept; exact landed SHA CI green.
Definition of Done
- #1 just check (fmt-check, lint, vet, test, tidy-check, build, vuln)
- #2 just ci before a change that touches the Dockerfile, goreleaser or the image (adds snapshot + image)
- #3 Every new signal or attribute name declared in internal/semconv and listed in docs/signals.md
Implementation Plan
Loop21: observer/context attribution, authentic two-registered-collector red/green, semconv/telemetry wiring, full and race gates, pre-land CodeRabbit and independent security; D1 lands first, root tracker batch included before M1 deploy.
Loop22 R1: reverse f4be3c4 without either tracker path; require exact eleven-path identity to 46cbb26, security identity review, full/race gates, then authorised push and exact-SHA CI. No new code or CodeRabbit rerun.
Implementation Notes
Loop21 M1 attempt1: registered fakeupstream red/green10requests, cached-settings exclusion and nonzero waits pass; CodeRabbit all10files complete0findings. Fullgate fails existing CLI dry-run exact count3 versus newly intended4with limiter histogram. No commit/push. Root repairs test ownership gap only cmd/cf2otel/main_test.go exact expected count while preserving behavioural assertions; rescue-sol second/final attempt.
Loop21: implementation attempts2(final). Registered10physical requests red/green; request/latency/wait and schema docs complete; exact dryrun count3to4 intentional. just check and cfapi racecount3 pass; collector racecount3 initial600souter notobserved, unchanged20mGo gate passes639.867s37tests each3times. Security PASS exact candidate hashes; CodeRabbit10filescomplete0findings. Runtime landing/CI/composed/live outstanding.
Loop21 M1 implementation attempts2; accepted and landed46cbb261de5bcabab8529c3a5529fd104be0b0f0. CI37242992096 exactSHA all6jobs success includingci-success; composed justcheckgreen; security+milestonePASS; CodeRabbit10filescomplete0findings. Live build/translated5API instruments verified; parent attribution remains measure-only pending. Hidden net/http internal resends unverified edgecase disclosed, explicit application retry/redirect/settings counts proven.
Loop21: two implementation attempts complete; local/review/composed/CI green at46cbb261, but deployed epoch unhealthy:14collectors23scrapeerrors,8repeated2failures versus0baseline, classother. Goal-authorised onecommit rollback required; no extra fix attempt. Sourcefirstpollsnapshot guard failed, partial cumulative attribution only; livecause unproven. Resume requires owner budget and authentic unhealthy/runtime reproduction, not healthydeployment assertion.
Readback correction:22errors(not23)across14collectors,8repeated. NewsameSHA0.18.0-rc.1 epoch0errors/21successes; autoRC37243958078 completed23:34:31before23:35:25alarm. Shutdown/RCredeploy plausible, causal instrumentation regression NOT established. Root follows explicit rise-vsbaseline rollback conservatively; owner should re-grade epoch/restart trigger. Partial recovered original-version table441requests; measurement acceptance remains open.
Loop22 R1 attempt3(total historical2 plus reland1): owner re-grade supersedes inconclusive shutdown-era rollback. Eleven code paths byte-identical to46cbb261; identity red before restoration, green after. Accepted and landed08a6c0eb605a9e0eb6f23aac918758097cb7661d, tested/reviewed tree6d0cee3f2e3c2b93752136b2211dbf8c20a8953e. just check and race-count3 exit0, collector639.649s; process receipt /tmp/cf2otel-r1-gate-process-receipt.json. Security identityPASS; CodeRabbit exempt exact prior reviewed content. ExactCI37294154184 allsixjobs success; R1-composed justcheck exit0. Accounting contract at Client.Do boundary includes application retries/redirects/settings, excludes transport-internal resends per owner. Live attribution remains parent work, no runtime-health claim.
Final Summary
Instrumented scheduler-attributed physical HTTP exchange metrics and limiter waits with bounded dimensions; authentic registered fake-upstream red/green, full/race gates, independent reviews, composed gate and exact-SHA CI pass. Required limiter histogram intentionally changes dry-run exact metric count3to4, preserving other assertions. No throughput correction.
Subsequent live health invalidated deployed acceptance; original pass evidence remains historical only. Instrumentation is being reverted and task Parked.
Loop22 owner-authorised exact-content restoration accepted/landed08a6c0eb with security identity, full/race, exactCI37294154184 and composed gate green. Previous conservative rollback does not establish instrumentation causation. No new code; live measurement remains pending under parent.