1313use Sentry \SentryBundle \EventListener \RequestListenerTerminateEvent ;
1414use Sentry \SentryBundle \EventListener \TracingRequestListener ;
1515use Sentry \State \HubInterface ;
16+ use Sentry \Tracing \DynamicSamplingContext ;
1617use Sentry \Tracing \SpanId ;
1718use Sentry \Tracing \SpanStatus ;
1819use Sentry \Tracing \TraceId ;
1920use Sentry \Tracing \Transaction ;
2021use Sentry \Tracing \TransactionContext ;
22+ use Sentry \Tracing \TransactionSource ;
2123use Symfony \Bridge \PhpUnit \ClockMock ;
2224use Symfony \Component \HttpFoundation \Request ;
2325use Symfony \Component \HttpFoundation \Response ;
@@ -85,11 +87,15 @@ public function testHandleKernelRequestEvent(Options $options, Request $request,
8587 */
8688 public function handleKernelRequestEventDataProvider (): \Generator
8789 {
90+ $ samplingContext = DynamicSamplingContext::fromHeader ('' );
91+ $ samplingContext ->freeze ();
92+
8893 $ transactionContext = new TransactionContext ();
8994 $ transactionContext ->setTraceId (new TraceId ('566e3688a61d4bc888951642d6f14a19 ' ));
9095 $ transactionContext ->setParentSpanId (new SpanId ('566e3688a61d4bc8 ' ));
9196 $ transactionContext ->setParentSampled (true );
9297 $ transactionContext ->setName ('GET http://www.example.com/ ' );
98+ $ transactionContext ->setSource (TransactionSource::url ());
9399 $ transactionContext ->setOp ('http.server ' );
94100 $ transactionContext ->setStartTimestamp (1613493597.010275 );
95101 $ transactionContext ->setTags ([
@@ -100,6 +106,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
100106 'route ' => '<unknown> ' ,
101107 'net.host.name ' => 'www.example.com ' ,
102108 ]);
109+ $ transactionContext ->getMetadata ()->setDynamicSamplingContext ($ samplingContext );
103110
104111 yield 'request.headers.sentry-trace EXISTS ' => [
105112 new Options (),
@@ -117,8 +124,47 @@ public function handleKernelRequestEventDataProvider(): \Generator
117124 $ transactionContext ,
118125 ];
119126
127+ $ samplingContext = DynamicSamplingContext::fromHeader ('sentry-trace_id=566e3688a61d4bc888951642d6f14a19,sentry-public_key=public,sentry-sample_rate=1 ' );
128+ $ samplingContext ->freeze ();
129+
130+ $ transactionContext = new TransactionContext ();
131+ $ transactionContext ->setTraceId (new TraceId ('566e3688a61d4bc888951642d6f14a19 ' ));
132+ $ transactionContext ->setParentSpanId (new SpanId ('566e3688a61d4bc8 ' ));
133+ $ transactionContext ->setParentSampled (true );
134+ $ transactionContext ->setName ('GET http://www.example.com/ ' );
135+ $ transactionContext ->setSource (TransactionSource::url ());
136+ $ transactionContext ->setOp ('http.server ' );
137+ $ transactionContext ->setStartTimestamp (1613493597.010275 );
138+ $ transactionContext ->setTags ([
139+ 'net.host.port ' => '80 ' ,
140+ 'http.method ' => 'GET ' ,
141+ 'http.url ' => 'http://www.example.com/ ' ,
142+ 'http.flavor ' => '1.1 ' ,
143+ 'route ' => '<unknown> ' ,
144+ 'net.host.name ' => 'www.example.com ' ,
145+ ]);
146+ $ transactionContext ->getMetadata ()->setDynamicSamplingContext ($ samplingContext );
147+
148+ yield 'request.headers.sentry-trace and headers.baggage EXISTS ' => [
149+ new Options (),
150+ Request::create (
151+ 'http://www.example.com ' ,
152+ 'GET ' ,
153+ [],
154+ [],
155+ [],
156+ [
157+ 'REQUEST_TIME_FLOAT ' => 1613493597.010275 ,
158+ 'HTTP_sentry-trace ' => '566e3688a61d4bc888951642d6f14a19-566e3688a61d4bc8-1 ' ,
159+ 'HTTP_baggage ' => 'sentry-trace_id=566e3688a61d4bc888951642d6f14a19,sentry-public_key=public,sentry-sample_rate=1 ' ,
160+ ]
161+ ),
162+ $ transactionContext ,
163+ ];
164+
120165 $ transactionContext = new TransactionContext ();
121166 $ transactionContext ->setName ('GET http://www.example.com/ ' );
167+ $ transactionContext ->setSource (TransactionSource::url ());
122168 $ transactionContext ->setOp ('http.server ' );
123169 $ transactionContext ->setStartTimestamp (1613493597.010275 );
124170 $ transactionContext ->setTags ([
@@ -141,6 +187,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
141187
142188 $ transactionContext = new TransactionContext ();
143189 $ transactionContext ->setName ('GET http://127.0.0.1/ ' );
190+ $ transactionContext ->setSource (TransactionSource::url ());
144191 $ transactionContext ->setOp ('http.server ' );
145192 $ transactionContext ->setStartTimestamp (1613493597.010275 );
146193 $ transactionContext ->setTags ([
@@ -171,6 +218,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
171218
172219 $ transactionContext = new TransactionContext ();
173220 $ transactionContext ->setName ('GET http://www.example.com/path ' );
221+ $ transactionContext ->setSource (TransactionSource::url ());
174222 $ transactionContext ->setOp ('http.server ' );
175223 $ transactionContext ->setStartTimestamp (1613493597.010275 );
176224 $ transactionContext ->setTags ([
@@ -194,6 +242,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
194242
195243 $ transactionContext = new TransactionContext ();
196244 $ transactionContext ->setName ('GET http://www.example.com/path ' );
245+ $ transactionContext ->setSource (TransactionSource::url ());
197246 $ transactionContext ->setOp ('http.server ' );
198247 $ transactionContext ->setStartTimestamp (1613493597.010275 );
199248 $ transactionContext ->setTags ([
@@ -217,6 +266,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
217266
218267 $ transactionContext = new TransactionContext ();
219268 $ transactionContext ->setName ('GET http://www.example.com/ ' );
269+ $ transactionContext ->setSource (TransactionSource::url ());
220270 $ transactionContext ->setOp ('http.server ' );
221271 $ transactionContext ->setStartTimestamp (1613493597.010275 );
222272 $ transactionContext ->setTags ([
@@ -240,6 +290,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
240290
241291 $ transactionContext = new TransactionContext ();
242292 $ transactionContext ->setName ('GET http://www.example.com/ ' );
293+ $ transactionContext ->setSource (TransactionSource::url ());
243294 $ transactionContext ->setOp ('http.server ' );
244295 $ transactionContext ->setStartTimestamp (1613493597.010275 );
245296 $ transactionContext ->setTags ([
@@ -263,6 +314,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
263314
264315 $ transactionContext = new TransactionContext ();
265316 $ transactionContext ->setName ('GET http://www.example.com/ ' );
317+ $ transactionContext ->setSource (TransactionSource::url ());
266318 $ transactionContext ->setOp ('http.server ' );
267319 $ transactionContext ->setStartTimestamp (1613493597.010275 );
268320 $ transactionContext ->setTags ([
@@ -286,6 +338,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
286338
287339 $ transactionContext = new TransactionContext ();
288340 $ transactionContext ->setName ('GET http://www.example.com/ ' );
341+ $ transactionContext ->setSource (TransactionSource::url ());
289342 $ transactionContext ->setOp ('http.server ' );
290343 $ transactionContext ->setStartTimestamp (1613493597.010275 );
291344 $ transactionContext ->setTags ([
@@ -309,6 +362,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
309362
310363 $ transactionContext = new TransactionContext ();
311364 $ transactionContext ->setName ('GET http://www.example.com/ ' );
365+ $ transactionContext ->setSource (TransactionSource::url ());
312366 $ transactionContext ->setOp ('http.server ' );
313367 $ transactionContext ->setStartTimestamp (1613493597.010275 );
314368 $ transactionContext ->setTags ([
@@ -332,6 +386,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
332386
333387 $ transactionContext = new TransactionContext ();
334388 $ transactionContext ->setName ('GET http://:/ ' );
389+ $ transactionContext ->setSource (TransactionSource::url ());
335390 $ transactionContext ->setOp ('http.server ' );
336391 $ transactionContext ->setStartTimestamp (1613493597.010275 );
337392 $ transactionContext ->setTags ([
0 commit comments