Skip to content

chore(deps): require laravel-telemetry ^2.4 - #1

Merged
sylvesterdamgaard merged 1 commit into
mainfrom
chore/telemetry-2.4
Sep 22, 2026
Merged

sylvesterdamgaard merged 1 commit into
mainfrom
chore/telemetry-2.4

Conversation

@sylvesterdamgaard

Copy link
Copy Markdown
Contributor

The overlay was pinned to cboxdk/laravel-telemetry: ^1.0, so it never resolved 2.x — and telemetry is now at v2.4.0.

Verified against 2.4.0

composer update resolves v1.0.0 → v2.4.0. Suite passes unchanged: 77 tests / 172 assertions, pint clean, PHPStan (level max, 1G) clean. No signature broke — telemetry 2.0's breaking changes were semantic (attribute and metric names), not API shape. Every hook the overlay uses (resolveUserUsing, resolveRouteUsing, enrichRequestsUsing, classifyCacheKeysUsing, recordSpan, bumpStat, the cache recorders) is intact.

One semantic break did reach us

Telemetry 2.0 dropped enduser.* — deprecated in semconv 1.27 — for user.id / user.type / user.guard. That left the overlay's enduser.roles, enduser.groups and enduser.super as the only enduser.* keys on the span: a trace would carry user.id from the base package next to enduser.roles from the overlay. Two vocabularies on one trace is exactly what the naming invariant exists to prevent, so they move too:

Was Now
enduser.roles user.roles
enduser.groups user.groups
enduser.super user.super

user.roles is in the OTel registry; user.groups/user.super are overlay-specific but now sit in the same namespace as everything else on the span. Docs, config comments, SECURITY.md and tests moved with them.

This is breaking for anyone whose TraceQL queries, dashboards or collector processors key on the old names, and for apps composing their own resolver on top of Hooks::userAttributes(). The next overlay release is therefore a major.

Drive-by

  • README install block asked for cboxdk/statamic-telemetry:^0.2.0 and described the package as 0.x SemVer — two majors stale since 1.0.0.
  • CI comment claimed telemetry resolves from a vcs repository entry; there is no such entry, it comes from Packagist.

Not in this PR

  • No version bump / tag — the 2.0.0 decision (and extra.branch-alias, still 1.0.x-dev) is yours.
  • Nothing adopted from the new telemetry surface, including 2.4.0's recordedMetrics() test API. The overlay's own tests could use it to pin label sets, but that is a separate change.
  • composer audit reports three statamic/cms advisories (two fixed in 6.24.2, one with no fix as of 6.30.0). Pre-existing, unrelated to this bump, and statamic/cms is the host's dependency, not ours to pin.

The overlay was pinned to ^1.0, so it never saw telemetry 2.x. Raised to
^2.4 and verified against 2.4.0: 77 tests, pint and PHPStan clean, no code
change needed for the API — the 2.0 breaks were semantic, not signatures.

One of them did reach us. Telemetry 2.0 dropped enduser.* (deprecated in
semconv 1.27) for user.id/user.type/user.guard, which left the overlay's
enduser.roles/groups/super as the only enduser.* keys on the span — two
vocabularies on one trace, which is exactly what the naming invariant
forbids. Renamed to user.roles/user.groups/user.super, with docs, config
comments, SECURITY.md and tests moved with them.

Breaking for anyone querying the old attribute names, so the next release
is a major.

Also fixed a README install block two majors stale (^0.2.0, described as
0.x SemVer) and a CI comment claiming telemetry resolves from a vcs entry.
@sylvesterdamgaard
sylvesterdamgaard merged commit fcac993 into main Sep 22, 2026
5 checks passed
@sylvesterdamgaard
sylvesterdamgaard deleted the chore/telemetry-2.4 branch September 22, 2026 08:44
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