Skip to content

Commit

Permalink
Merge branch 'master' into 3.1-merge
Browse files Browse the repository at this point in the history
  • Loading branch information
limingxinleo committed Aug 20, 2023
2 parents 4413bb4 + 02f9b01 commit 1cf1dc0
Show file tree
Hide file tree
Showing 14 changed files with 27 additions and 35 deletions.
1 change: 1 addition & 0 deletions publish/opentracing.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@
],
'request' => [
'path' => 'request.path',
'uri' => 'request.uri',
'method' => 'request.method',
'header' => 'request.header',
],
Expand Down
7 changes: 1 addition & 6 deletions src/Aspect/CoroutineAspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,8 @@
use Hyperf\Engine\Coroutine as Co;
use Hyperf\Tracer\TracerContext;
use OpenTracing\Span;
use OpenTracing\Tracer;
use Throwable;

use function Hyperf\Support\make;

class CoroutineAspect extends AbstractAspect
{
public array $classes = [
Expand All @@ -35,9 +32,7 @@ public function process(ProceedingJoinPoint $proceedingJoinPoint)
$proceedingJoinPoint->arguments['keys']['callable'] = function () use ($callable, $root) {
try {
if ($root instanceof Span) {
/** @var Tracer $tracer */
$tracer = make(Tracer::class);
TracerContext::setTracer($tracer);
$tracer = TracerContext::getTracer();
$child = $tracer->startSpan('coroutine', [
'child_of' => $root->getContext(),
]);
Expand Down
3 changes: 1 addition & 2 deletions src/Aspect/DbAspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
use Hyperf\Tracer\SpanStarter;
use Hyperf\Tracer\SpanTagManager;
use Hyperf\Tracer\SwitchManager;
use OpenTracing\Tracer;
use Throwable;

class DbAspect extends AbstractAspect
Expand All @@ -28,7 +27,7 @@ class DbAspect extends AbstractAspect
DB::class . '::__call',
];

public function __construct(private Tracer $tracer, private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
public function __construct(private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
{
}

Expand Down
3 changes: 1 addition & 2 deletions src/Aspect/ElasticserachAspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
use Hyperf\Tracer\SpanStarter;
use Hyperf\Tracer\SpanTagManager;
use Hyperf\Tracer\SwitchManager;
use OpenTracing\Tracer;
use Throwable;

class ElasticserachAspect extends AbstractAspect
Expand All @@ -40,7 +39,7 @@ class ElasticserachAspect extends AbstractAspect
Client::class . '::search',
];

public function __construct(private Tracer $tracer, private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
public function __construct(private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Aspect/HttpClientAspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
use Hyperf\Tracer\SpanStarter;
use Hyperf\Tracer\SpanTagManager;
use Hyperf\Tracer\SwitchManager;
use OpenTracing\Tracer;
use Hyperf\Tracer\TracerContext;
use Psr\Http\Message\ResponseInterface;
use Throwable;

Expand All @@ -32,7 +32,7 @@ class HttpClientAspect extends AbstractAspect
Client::class . '::requestAsync',
];

public function __construct(private Tracer $tracer, private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
public function __construct(private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
{
}

Expand Down Expand Up @@ -66,7 +66,7 @@ public function process(ProceedingJoinPoint $proceedingJoinPoint)
}
$appendHeaders = [];
// Injects the context into the wire
$this->tracer->inject(
TracerContext::getTracer()->inject(
$span->getContext(),
TEXT_MAP,
$appendHeaders
Expand Down
7 changes: 2 additions & 5 deletions src/Aspect/JsonRpcAspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
use Hyperf\Tracer\SpanStarter;
use Hyperf\Tracer\SpanTagManager;
use Hyperf\Tracer\SwitchManager;
use Hyperf\Tracer\TracerContext;
use OpenTracing\Span;
use OpenTracing\Tracer;
use Psr\Container\ContainerInterface;
use Throwable;

Expand All @@ -36,8 +36,6 @@ class JsonRpcAspect extends AbstractAspect
Client::class . '::send',
];

private Tracer $tracer;

private SwitchManager $switchManager;

private SpanTagManager $spanTagManager;
Expand All @@ -46,7 +44,6 @@ class JsonRpcAspect extends AbstractAspect

public function __construct(private ContainerInterface $container)
{
$this->tracer = $container->get(Tracer::class);
$this->switchManager = $container->get(SwitchManager::class);
$this->spanTagManager = $container->get(SpanTagManager::class);
$this->context = $container->get(Context::class);
Expand All @@ -63,7 +60,7 @@ public function process(ProceedingJoinPoint $proceedingJoinPoint)
}
$carrier = [];
// Injects the context into the wire
$this->tracer->inject(
TracerContext::getTracer()->inject(
$span->getContext(),
TEXT_MAP,
$carrier
Expand Down
3 changes: 1 addition & 2 deletions src/Aspect/MethodAspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
use Hyperf\Di\Aop\ProceedingJoinPoint;
use Hyperf\Tracer\SpanStarter;
use Hyperf\Tracer\SwitchManager;
use OpenTracing\Tracer;
use Throwable;

class MethodAspect extends AbstractAspect
Expand All @@ -26,7 +25,7 @@ class MethodAspect extends AbstractAspect
'App*',
];

public function __construct(private Tracer $tracer, private SwitchManager $switchManager)
public function __construct(private SwitchManager $switchManager)
{
}

Expand Down
3 changes: 1 addition & 2 deletions src/Aspect/RedisAspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
use Hyperf\Tracer\SpanStarter;
use Hyperf\Tracer\SpanTagManager;
use Hyperf\Tracer\SwitchManager;
use OpenTracing\Tracer;
use Throwable;

class RedisAspect extends AbstractAspect
Expand All @@ -28,7 +27,7 @@ class RedisAspect extends AbstractAspect
Redis::class . '::__call',
];

public function __construct(private Tracer $tracer, private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
public function __construct(private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
{
}

Expand Down
3 changes: 1 addition & 2 deletions src/Aspect/TraceAnnotationAspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
use Hyperf\Di\Aop\ProceedingJoinPoint;
use Hyperf\Tracer\Annotation\Trace;
use Hyperf\Tracer\SpanStarter;
use OpenTracing\Tracer;
use Throwable;

class TraceAnnotationAspect extends AbstractAspect
Expand All @@ -26,7 +25,7 @@ class TraceAnnotationAspect extends AbstractAspect
Trace::class,
];

public function __construct(private Tracer $tracer)
public function __construct()
{
}

Expand Down
3 changes: 1 addition & 2 deletions src/Listener/DbQueryExecutedListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,12 @@
use Hyperf\Tracer\SpanStarter;
use Hyperf\Tracer\SpanTagManager;
use Hyperf\Tracer\SwitchManager;
use OpenTracing\Tracer;

class DbQueryExecutedListener implements ListenerInterface
{
use SpanStarter;

public function __construct(private Tracer $tracer, private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
public function __construct(private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
{
}

Expand Down
14 changes: 8 additions & 6 deletions src/Middleware/TraceMiddleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
use Hyperf\Tracer\SpanStarter;
use Hyperf\Tracer\SpanTagManager;
use Hyperf\Tracer\SwitchManager;
use Hyperf\Tracer\TracerContext;
use OpenTracing\Span;
use OpenTracing\Tracer;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
Expand All @@ -30,7 +30,7 @@ class TraceMiddleware implements MiddlewareInterface
{
use SpanStarter;

public function __construct(private Tracer $tracer, private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
public function __construct(private SwitchManager $switchManager, private SpanTagManager $spanTagManager)
{
}

Expand All @@ -42,11 +42,12 @@ public function __construct(private Tracer $tracer, private SwitchManager $switc
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$tracer = TracerContext::getTracer();
$span = $this->buildSpan($request);

defer(function () {
defer(function () use ($tracer) {
try {
$this->tracer->flush();
$tracer->flush();
} catch (\Throwable) {
}
});
Expand Down Expand Up @@ -83,10 +84,11 @@ protected function appendExceptionToSpan(Span $span, Throwable $exception): void
protected function buildSpan(ServerRequestInterface $request): Span
{
$uri = $request->getUri();
$span = $this->startSpan('request');
$span = $this->startSpan(sprintf('request: %s %s', $request->getMethod(), $uri->getPath()));
$span->setTag($this->spanTagManager->get('coroutine', 'id'), (string) Coroutine::id());
$span->setTag($this->spanTagManager->get('request', 'path'), (string) $uri);
$span->setTag($this->spanTagManager->get('request', 'path'), (string) $uri->getPath());
$span->setTag($this->spanTagManager->get('request', 'method'), $request->getMethod());
$span->setTag($this->spanTagManager->get('request', 'uri'), (string) $uri);
foreach ($request->getHeaders() as $key => $value) {
$span->setTag($this->spanTagManager->get('request', 'header') . '.' . $key, implode(', ', $value));
}
Expand Down
2 changes: 1 addition & 1 deletion src/SpanStarter.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ protected function startSpan(
string $kind = SPAN_KIND_RPC_SERVER
): Span {
$root = TracerContext::getRoot();
$tracer = TracerContext::getTracer() ?: $this->tracer;
$tracer = TracerContext::getTracer();
if (! $root instanceof Span) {
$container = ApplicationContext::getContainer();
$request = RequestContext::getOrNull();
Expand Down
1 change: 1 addition & 0 deletions src/SpanTagManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class SpanTagManager
],
'request' => [
'path' => 'request.path',
'uri' => 'request.uri',
'method' => 'request.method',
'header' => 'request.header',
],
Expand Down
6 changes: 4 additions & 2 deletions src/TracerContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
use OpenTracing\Span;
use OpenTracing\Tracer;

use function Hyperf\Support\make;

class TracerContext
{
public const TRACER = 'tracer.tracer';
Expand All @@ -26,9 +28,9 @@ public static function setTracer(Tracer $tracer): Tracer
return Context::set(self::TRACER, $tracer);
}

public static function getTracer(): ?Tracer
public static function getTracer(): Tracer
{
return Context::get(self::TRACER) ?: null;
return Context::getOrSet(self::TRACER, make(Tracer::class));
}

public static function setRoot(Span $root): Span
Expand Down

0 comments on commit 1cf1dc0

Please sign in to comment.