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