Skip to content

Commit 9cacb0e

Browse files
committed
Merge branch '2.0.x' into 1.0.x
2 parents 9663d9e + 1ca6e33 commit 9cacb0e

File tree

3 files changed

+55
-4
lines changed

3 files changed

+55
-4
lines changed

src/Bridge/RequestSpanListener.php

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Jaeger\Http\HttpMethodTag;
66
use Jaeger\Http\HttpUriTag;
77
use Jaeger\Symfony\Name\Generator\NameGeneratorInterface;
8+
use Jaeger\Symfony\Tag\SymfonyBackgroundTag;
89
use Jaeger\Symfony\Tag\SymfonyComponentTag;
910
use Jaeger\Symfony\Tag\SymfonyVersionTag;
1011
use Jaeger\Symfony\Tag\TimeMicroTag;
@@ -15,6 +16,7 @@
1516
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
1617
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
1718
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
19+
use Symfony\Component\HttpKernel\Event\PostResponseEvent;
1820
use Symfony\Component\HttpKernel\HttpKernelInterface;
1921
use Symfony\Component\HttpKernel\KernelEvents;
2022

@@ -37,23 +39,58 @@ public static function getSubscribedEvents()
3739
{
3840
return [
3941
KernelEvents::REQUEST => ['onRequest', 29],
40-
KernelEvents::RESPONSE => ['onResponse'],
42+
KernelEvents::RESPONSE => ['onResponse', -1024],
43+
KernelEvents::TERMINATE => ['onTerminate', -1024],
4144
];
4245
}
4346

44-
public function onResponse(FilterResponseEvent $event)
47+
public function onTerminate(PostResponseEvent $event)
4548
{
4649
if ($this->spans->isEmpty()) {
4750
return $this;
4851
}
4952

53+
if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
54+
return $this;
55+
}
56+
5057
$this->tracer->finish(
5158
$this->spans->pop()->addTag(new HttpCodeTag($event->getResponse()->getStatusCode()))
5259
);
5360

5461
return $this;
5562
}
5663

64+
public function onResponse(FilterResponseEvent $event)
65+
{
66+
if ($this->spans->isEmpty()) {
67+
return $this;
68+
}
69+
70+
if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
71+
$this->tracer->finish(
72+
$this->spans->pop()->addTag(new HttpCodeTag($event->getResponse()->getStatusCode()))
73+
);
74+
75+
return $this;
76+
}
77+
78+
$request = $event->getRequest();
79+
$this->tracer->start(
80+
$this->nameGenerator->generate() . ':background',
81+
[
82+
new HttpMethodTag($request->getMethod()),
83+
new HttpUriTag($request->getRequestUri()),
84+
new SpanKindServerTag(),
85+
new SymfonyComponentTag(),
86+
new SymfonyVersionTag(),
87+
new SymfonyBackgroundTag(),
88+
]
89+
);
90+
91+
return $this;
92+
}
93+
5794
public function onRequest(GetResponseEvent $event)
5895
{
5996
$request = $event->getRequest();

src/Bridge/TracerBridge.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public function __construct(FlushableInterface $tracer)
1818
public static function getSubscribedEvents()
1919
{
2020
return [
21-
ConsoleEvents::TERMINATE => ['onTerminate'],
22-
KernelEvents::TERMINATE => ['onTerminate'],
21+
ConsoleEvents::TERMINATE => ['onTerminate', -65536],
22+
KernelEvents::TERMINATE => ['onTerminate', -65536],
2323
];
2424
}
2525

src/Tag/SymfonyBackgroundTag.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Jaeger\Symfony\Tag;
5+
6+
use Jaeger\Tag\BoolTag;
7+
8+
class SymfonyBackgroundTag extends BoolTag
9+
{
10+
public function __construct()
11+
{
12+
parent::__construct('symfony.background', true);
13+
}
14+
}

0 commit comments

Comments
 (0)