Skip to content

Implement or reject Tinybird telemetry configuration coherently #1148

Open

Description

@aram356

Context

Tinybird auction telemetry is implemented by the Fastly adapter; other adapters use the core no-op sink. PR #1261 adds opt-in sampled access telemetry on Fastly and a separate access_logs_v2 datasource. On that branch, access_enabled = true is no longer rejected as unwired: active sinks are validated independently, and access emission requires the master switch, a host, dataset, token and positive sample rate.

The earlier statement that all access telemetry is rejected described checkout 666953a0d. It is stale for the #1261 implementation and should not drive follow-up work.

Desired outcome

A deliberate telemetry support contract across validation, runtime emission, adapter startup diagnostics and documentation. An accepted setting must not imply emission on a platform with no sink.

Current consolidation-branch support

Adapter Auction rows Access rows Server-Timing
Fastly Yes, when enabled Yes, when enabled and sampled Private-response opt-in
Axum No No Private-response opt-in
Cloudflare No No No
Spin No No No

Cloudflare and Spin collect request timing for GPT diagnostics but ignore both header/access emission flags. This table describes #1261, not a claim that it has merged or deployed.

Scoped work

  • Decide and document startup warning or another explicit unsupported-setting behavior for adapters with no sink. Account for shared multi-target config before choosing blanket startup rejection.
  • Test enabled, disabled and unsupported combinations through each adapter's production router/startup path, not only a manually constructed middleware test router.
  • Keep configuration, telemetry and adapter documentation consistent with the chosen support matrix.
  • Ensure no accepted configuration silently promises an event stream that the selected adapter cannot emit.

Do not reimplement Fastly access emission or duplicate its versioned-datasource rollout in this follow-up. Sink selection redesign is separately tracked in #1274.

Related

Original PR #1049 finding, #1261 reviews unsupported flags and startup diagnostics, deferred-work tracker #1458. Live ingestion and deployment validation remain rollout requirements, not evidence supplied by this issue.

Activity

  1. self-assigned this
    on Sep 8, 2026
  2. added
    rustPull requests that update rust code
    on Sep 8, 2026
  3. added theissue type on Sep 10, 2026
  4. removed
    rustPull requests that update rust code
    on Sep 10, 2026
  5. jwrosewell commented on Oct 16, 2026

    @jwrosewell
    Collaborator

    When auction telemetry becomes a module that [analytics] selects (#1357), the [tinybird] table goes. The module is analytics.tinybird, selected with [analytics] module = "tinybird", with its settings in [analytics.tinybird]. There is no enabled key, because the selector is what switches telemetry on, and an old [tinybird] table is refused when the settings load. The module's crate is crates/analytics/tinybird once the analytics module and the platforms' cache headers leave core (#1389). So the tests in the done list would be written against [analytics] module and [analytics.tinybird] rather than tinybird.enabled. The design is https://github.com/IABTechLab/trusted-server/blob/feature/6-integration-seam/docs/superpowers/specs/2026-10-12-analytics-module-design.md, and the module's name is held at

    pub const MODULE: &str = "analytics.tinybird";
    .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions