1
1
<?php
2
2
namespace Jaeger \Symfony \Bridge ;
3
3
4
+ use Jaeger \Tag \DoubleTag ;
5
+ use Jaeger \Tag \LongTag ;
6
+ use Jaeger \Tag \StringTag ;
4
7
use Jaeger \Tracer \TracerInterface ;
5
8
use Symfony \Component \EventDispatcher \EventSubscriberInterface ;
6
- use Symfony \Component \HttpFoundation \Request ;
7
9
use Symfony \Component \HttpKernel \Event \GetResponseEvent ;
8
10
use Symfony \Component \HttpKernel \HttpKernelInterface ;
9
11
use Symfony \Component \HttpKernel \KernelEvents ;
@@ -17,16 +19,6 @@ public function __construct(TracerInterface $tracer)
17
19
$ this ->tracer = $ tracer ;
18
20
}
19
21
20
- /**
21
- * @param Request $request
22
- *
23
- * @return int
24
- */
25
- public function getStartTime (Request $ request )
26
- {
27
- return (int )($ request ->server ->get ('REQUEST_TIME_FLOAT ' , microtime (true )) * 1000000 );
28
- }
29
-
30
22
public static function getSubscribedEvents ()
31
23
{
32
24
return [
@@ -38,7 +30,16 @@ public function onRequest(GetResponseEvent $event)
38
30
{
39
31
$ request = $ event ->getRequest ();
40
32
if (HttpKernelInterface::MASTER_REQUEST === $ event ->getRequestType ()) {
41
- $ this ->tracer ->finish ($ this ->tracer ->start ('app.start ' )->start ($ this ->getStartTime ($ request )));
33
+ $ source = $ request ->server ->has ('REQUEST_TIME_FLOAT ' ) ? 'header ' : 'microtime ' ;
34
+ $ value = $ request ->server ->get ('REQUEST_TIME_FLOAT ' , microtime (true ));
35
+ $ startTime = (int )($ value * 1000000 );
36
+ $ this ->tracer ->finish (
37
+ $ this ->tracer ->start ('app.start ' )
38
+ ->addTag (new StringTag ('time.source ' , $ source ))
39
+ ->addTag (new DoubleTag ('time.value ' , $ value ))
40
+ ->addTag (new LongTag ('time.micro ' , $ startTime ))
41
+ ->start ($ startTime )
42
+ );
42
43
}
43
44
44
45
return $ this ;
0 commit comments