Description
cf2otel exports no byte counts, the most basic CDN metric. Zone metrics elsewhere also filter to requestSource eyeball so Worker subrequests and other internal traffic are not counted as visitor traffic; cf2otel applies no requestSource filter today, so switching changes existing numbers.
Acceptance Criteria
- #1 Edge response bytes are exported from httpRequestsAdaptiveGroups as a counter carrying the same dimensions as the request counter (cached vs uncached derivable from cache status)
- #2 Request and byte metrics honour a documented requestSource policy (default eyeball, configurable), and the CHANGELOG calls out the change in request totals
- #3 A new dataset or endpoint has a live-verified entry in doc-0003 and an API drift canary probe
- #4 Every new signal and attribute is declared in internal/semconv, listed in docs/signals.md, and has a panel in grafana/build_dashboard.py
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 Notes
Loop14 candidate e9b969b72a0d94620c01a619eefc468f50462a6a passed independent exact-SHA review and local gates; registered Free/Pro fixtures prove same-dimension byte counters, origin quantiles and Pro-only TTFB with field budgets. Policy eyeball/all is implemented without changing raw events; the commit subject calls out changed totals, but release-2 CHANGELOG rendering is pending. doc-0003 full-body update and drift canary 36825611418 passed. DASH/live acceptance remains open; superseded cancelled CI is not a pass.
Final reconciliation: published v0.10.0 CHANGELOG explicitly states request totals now count eyeball traffic only, with added bytes and latency. Local policy fixtures prove configurable eyeball/all behavior without changing raw events. LIVEP30 terminal backend proof contains response-byte series; successful DASH2 sync/readback confirms panel 2050 and country-bandwidth panel 2058 with exact new selectors. Declared names/docs, fresh implementation/DASH reviews, source contract canary and gates already passed. Conditional packaging DoD2 is not applicable to this collector-only change.
Final Summary
Added same-dimension response-byte counters with documented configurable request-source policy and published changed-total warning. Verified source contracts, local behavior, shipped panels and deployed byte series.