@@ -209,6 +209,7 @@ use OpenTelemetry\API\Trace\SpanInterface;
209209use OpenTelemetry\S DK\T race\T racer;
210210use Symfony\C omponent\E ventDispatcher\E ventSubscriberInterface;
211211use Symfony\C omponent\H ttpKernel\K ernelEvents;
212+ use Symfony\C omponent\H ttpKernel\E vent\R equestEvent;
212213use Symfony\C omponent\H ttpKernel\E vent\T erminateEvent;
213214
214215class TracingKernelSubscriber implements EventSubscriberInterface
@@ -221,12 +222,15 @@ class TracingKernelSubscriber implements EventSubscriberInterface
221222 // store a reference to the Tracer instance in case we want to create
222223 // more spans on different events (not covered in this example)
223224 $this->tracer = $tracer;
225+ }
224226
227+ public function onRequestEvent(RequestEvent $event)
228+ {
225229 // Create our main span and activate it
226- $this->mainSpan = $tracer->spanBuilder('main')->startSpan();
230+ $this->mainSpan = $this-> tracer->spanBuilder('main')->startSpan();
227231 $this->mainSpan->activate();
228232 }
229-
233+
230234 public function onTerminateEvent(TerminateEvent $event): void
231235 {
232236 // end our main span once the request has been processed and the kernel terminates.
@@ -236,9 +240,11 @@ class TracingKernelSubscriber implements EventSubscriberInterface
236240 public static function getSubscribedEvents(): array
237241 {
238242 // return the subscribed events, their methods and priorities
239- // use a very low negative integer for the priority, so the listener
240- // will be the last one to be called.
243+ // use a very high integer for the Request priority and a
244+ // very low negative integer for the Terminate priority, so the listener
245+ // will be the first and last one to be called respectively.
241246 return [
247+ KernelEvents::TERMINATE => [['onRequestEvent', 10000]],
242248 KernelEvents::TERMINATE => [['onTerminateEvent', -10000]],
243249 ];
244250 }
0 commit comments