Skip to content

Symfony messenger telemetry refactor#2466

Merged
norberttech merged 3 commits into
1.xfrom
symfony-messenger-telemetry-refactor
Jun 19, 2026
Merged

Symfony messenger telemetry refactor#2466
norberttech merged 3 commits into
1.xfrom
symfony-messenger-telemetry-refactor

Conversation

@norberttech

Copy link
Copy Markdown
Member

Change Log


Added

  • flow-php/telemetry - time-based flush for batching log, metric and span processors
  • flow-php/symfony-telemetry-bundle - per-message telemetry flush on Messenger worker events

Fixed

Changed

  • flow-php/telemetry - span parent is now derived solely from the Context
  • flow-php/telemetry - trace id is derived from the active span; each root span starts a new trace
  • flow-php/symfony-telemetry-bundle - each consumed Messenger message is its own trace, linked to the producer

Removed

  • flow-php/telemetry - per-tracer span stack
  • flow-php/telemetry - Context::withTraceId() and the standalone context trace id

Deprecated

Security

- add optional max_batch_age (monotonic hrtime) to span/metric/log
batching processors
…messages get their own trace

- Context holds the active SpanContext instead of a standalone trace id;
root spans generate a new TraceId (OTEL-aligned)
- remove Context::withTraceId/create and the context(?TraceId) DSL
seeding; withActiveSpan takes a SpanContext
- symfony-telemetry-bundle: each consumed Messenger message is its own
trace, linked to the producer (link mode)
- symfony-telemetry-bundle: configurable worker-span link
(link_to_worker, default true) + per-message flush subscriber
- remove per-tracer span stack; active span lives in shared Context
- parent resolution falls through to Context::activeSpan() only
- nesting popped via Scope detach instead of stack pop
- add cross-tracer parenting + attached-context conformance tests
@codecov

codecov Bot commented Jun 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.63636% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.13%. Comparing base (7d7e378) to head (24515cb).
⚠️ Report is 3 commits behind head on 1.x.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff              @@
##                1.x    #2466      +/-   ##
============================================
- Coverage     85.14%   85.13%   -0.01%     
- Complexity    21259    21321      +62     
============================================
  Files          1605     1609       +4     
  Lines         65589    65763     +174     
============================================
+ Hits          55846    55988     +142     
- Misses         9743     9775      +32     
Components Coverage Δ
etl 88.44% <ø> (ø)
cli 89.40% <ø> (ø)
lib-array-dot 81.44% <ø> (ø)
lib-azure-sdk 64.44% <ø> (ø)
lib-doctrine-dbal-bulk 93.61% <ø> (ø)
lib-filesystem 85.03% <ø> (ø)
lib-types 90.06% <ø> (ø)
lib-parquet 70.10% <ø> (ø)
lib-parquet-viewer 82.26% <ø> (ø)
lib-snappy 89.38% <ø> (+0.44%) ⬆️
lib-dremel 0.00% <ø> (ø)
lib-postgresql 88.59% <ø> (ø)
lib-telemetry 85.95% <100.00%> (-0.01%) ⬇️
bridge-filesystem-async-aws 92.74% <ø> (ø)
bridge-filesystem-azure 90.45% <ø> (ø)
bridge-monolog-http 96.82% <ø> (ø)
bridge-monolog-telemetry 94.11% <ø> (ø)
bridge-openapi-specification 92.07% <ø> (ø)
symfony-http-foundation 78.57% <ø> (ø)
bridge-psr18-telemetry 100.00% <ø> (ø)
bridge-psr3-telemetry 97.84% <ø> (ø)
bridge-psr7-telemetry 100.00% <ø> (ø)
bridge-telemetry-otlp 89.96% <ø> (+0.06%) ⬆️
bridge-symfony-http-foundation-telemetry 89.47% <ø> (ø)
bridge-symfony-filesystem-bundle 90.66% <ø> (ø)
bridge-symfony-filesystem-cache 98.14% <ø> (ø)
bridge-symfony-postgresql-bundle 93.83% <ø> (ø)
bridge-symfony-postgresql-cache 94.41% <ø> (ø)
bridge-symfony-postgresql-messenger 98.80% <ø> (ø)
bridge-symfony-postgresql-session 93.65% <ø> (ø)
bridge-symfony-telemetry-bundle 81.00% <87.71%> (-0.02%) ⬇️
adapter-chartjs 84.05% <ø> (ø)
adapter-csv 91.16% <ø> (ø)
adapter-doctrine 90.79% <ø> (ø)
adapter-google-sheet 99.18% <ø> (ø)
adapter-http 72.34% <ø> (ø)
adapter-json 88.63% <ø> (ø)
adapter-logger 50.00% <ø> (ø)
adapter-parquet 77.70% <ø> (ø)
adapter-text 74.13% <ø> (ø)
adapter-xml 83.40% <ø> (ø)
adapter-avro 0.00% <ø> (ø)
adapter-excel 94.21% <ø> (ø)
adapter-postgresql 91.06% <ø> (ø)
adapter-seal 85.42% <ø> (ø)
bridge-phpunit-postgresql 75.30% <ø> (ø)
bridge-phpunit-telemetry 80.08% <ø> (ø)
bridge-phpstan-types 0.00% <ø> (ø)
bridge-postgresql-valinor 100.00% <ø> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@norberttech norberttech added this to the 0.41.0 milestone Jun 19, 2026
@norberttech norberttech merged commit 246da2c into 1.x Jun 19, 2026
39 checks passed
@norberttech norberttech deleted the symfony-messenger-telemetry-refactor branch June 19, 2026 20:32
@github-project-automation github-project-automation Bot moved this from Todo to Done in Roadmap Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant