Skip to content

Add a shared request-timing collector and opt-in attachment middleware #446

Description

@ChristianPavilonis

Description

PR #389 supplies a shared RequestTimings<N, D> collector with one portable origin, bounded phase slots, snapshots, application-owned payload, saturating accumulation/drop spans and opt-in insert-if-absent attachment middleware. It is open and now ready for review rather than draft. Main has no collector module (crates/edgezero-core/src/lib.rs:16).

Steps to reproduce

On the exact #389 candidate, exercise collection/snapshots/spans and middleware insertion, existing-handle preservation and exact-path exclusions through core/macro/adapter contracts. Verify the paired Trusted Server facade and all six dependency declarations resolve to one core identity.

Expected behavior

Applications can share request timing data and lifecycle marks while owning phase names, facts, rendering, exposure and privacy. Attachment alone does not finalize a request or measure streamed-body completion.

Impact

Inconsistent handles/origins or duplicated core identities can break timing integration. Local clock tests do not qualify deployed Cloudflare semantics; collector availability does not satisfy automatic output #120.

Proposed fix

Review/merge #389 with its coordinated consumer gate and revision-specific tests/docs. Preserve explicit headers-ready/completion/response-byte marks, existing handle behavior and deferred Cloudflare/Spin extension hooks. Consumer release/tag adoption and final tag-backed validation remain downstream; no automatic header/log rendering is added by attachment.

Done when

  • Review and merge feat(core): add shared request timing collector and middleware #389 with its documented API contracts and boundary limitations.
  • Pass relevant core, adapter, macro, doctest and documentation checks against the revision being merged.
  • Meet the PR's coordinated-delivery gate: update the Trusted Server consumer facade and all six dependency pins to one pushed candidate, confirm one resolved EdgeZero core identity and rerun joint validation.
  • Keep deployed-provider clock qualification and any deferred work explicit. Local runtime tests do not establish deployed Cloudflare clock semantics.

The PR records detailed verification and remaining delivery gates. Trusted Server must replace temporary revision pins with an approved EdgeZero release tag and pass final tag-backed validation before its own merge.

Related to #120, which requests automatic request-latency capture and exposure. This issue covers the shared collector and attachment foundation, not automatic header or log output.

Related

Activity

  1. added theissue type on Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions