Skip to content

Commit 0736644

Browse files
committed
Separate error tagging logic
1 parent eab164c commit 0736644

File tree

3 files changed

+27
-27
lines changed

3 files changed

+27
-27
lines changed

src/Bridge/ExceptionListener.php

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,25 @@
33

44
namespace Jaeger\Symfony\Bridge;
55

6+
use Jaeger\Log\ErrorLog;
67
use Jaeger\Span\SpanAwareInterface;
78
use Jaeger\Tag\ErrorTag;
8-
use Jaeger\Tracer\TracerInterface;
99
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
1010
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
11-
use Symfony\Component\HttpKernel\Event\RequestEvent;
12-
use Symfony\Component\HttpKernel\HttpKernelInterface;
1311

1412
class ExceptionListener implements EventSubscriberInterface
1513
{
16-
private $tracer;
1714
private $spanManager;
18-
private $globalSpanHandler;
19-
private $exceptionExist;
20-
21-
public function __construct(
22-
TracerInterface $tracer,
23-
SpanAwareInterface $spanManager,
24-
GlobalSpanHandler $globalSpanHandler
25-
) {
26-
$this->tracer = $tracer;
15+
16+
public function __construct(SpanAwareInterface $spanManager)
17+
{
2718
$this->spanManager = $spanManager;
28-
$this->globalSpanHandler = $globalSpanHandler;
29-
$this->exceptionExist = false;
3019
}
3120

3221
public static function getSubscribedEvents(): array
3322
{
3423
return [
3524
ExceptionEvent::class => ['onKernelException', 0],
36-
RequestEvent::class => ['onRequest', 28],
3725
];
3826
}
3927

@@ -45,14 +33,11 @@ public function onKernelException(ExceptionEvent $event): void
4533
return;
4634
}
4735

48-
$span->addTag(new ErrorTag());
49-
$this->exceptionExist = true;
50-
}
36+
$exception = $event->getThrowable();
5137

52-
public function onRequest(RequestEvent $event): void
53-
{
54-
if ($this->exceptionExist) {
55-
$this->spanManager->getSpan()->addTag(new ErrorTag());
56-
}
38+
$span
39+
->addTag(new ErrorTag())
40+
->addLog(new ErrorLog($exception->getMessage(), $exception->getTraceAsString()))
41+
;
5742
}
5843
}

src/Bridge/RequestSpanListener.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@
66
use Jaeger\Http\HttpCodeTag;
77
use Jaeger\Http\HttpMethodTag;
88
use Jaeger\Http\HttpUriTag;
9+
use Jaeger\Log\ErrorLog;
910
use Jaeger\Symfony\Name\Generator\NameGeneratorInterface;
1011
use Jaeger\Symfony\Tag\SymfonyComponentTag;
1112
use Jaeger\Symfony\Tag\SymfonyVersionTag;
13+
use Jaeger\Tag\ErrorTag;
1214
use Jaeger\Tag\SpanKindServerTag;
1315
use Jaeger\Tracer\TracerInterface;
1416
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
17+
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
1518
use Symfony\Component\HttpKernel\Event\RequestEvent;
1619
use Symfony\Component\HttpKernel\Event\ResponseEvent;
1720
use Symfony\Component\HttpKernel\HttpKernelInterface;
@@ -36,6 +39,7 @@ public static function getSubscribedEvents(): array
3639
return [
3740
RequestEvent::class => ['onRequest', 29],
3841
ResponseEvent::class => ['onResponse', -1024],
42+
ExceptionEvent::class => ['onKernelException', 0],
3943
];
4044
}
4145

@@ -69,4 +73,18 @@ public function onRequest(RequestEvent $event): void
6973
)
7074
);
7175
}
76+
77+
public function onKernelException(ExceptionEvent $event): void
78+
{
79+
if ($this->spans->isEmpty()) {
80+
return;
81+
}
82+
83+
$exception = $event->getThrowable();
84+
85+
$this->spans->current()
86+
->addTag(new ErrorTag())
87+
->addLog(new ErrorLog($exception->getMessage(), $exception->getTraceAsString()))
88+
;
89+
}
7290
}

src/Resources/services.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,12 +189,9 @@ services:
189189
arguments: ['@jaeger.span.handler.background', '@jaeger.span.handler.gloabal']
190190
tags:
191191
- {name: 'kernel.event_subscriber' }
192-
193192
jaeger.exception.listener:
194193
class: Jaeger\Symfony\Bridge\ExceptionListener
195194
arguments:
196-
- '@jaeger.tracer'
197195
- '@jaeger.span.manager'
198-
- '@jaeger.span.handler.gloabal'
199196
tags:
200197
- {name: 'kernel.event_subscriber'}

0 commit comments

Comments
 (0)