diff --git a/src/Contracts/Tracer.php b/src/Contracts/Tracer.php index c1a43f9..8a79c26 100644 --- a/src/Contracts/Tracer.php +++ b/src/Contracts/Tracer.php @@ -14,9 +14,10 @@ interface Tracer * @param string $name * @param SpanContext|null $spanContext * @param int|null $timestamp intval(microtime(true) * 1000000) + * @param string|null $kind * @return Span */ - public function startSpan(string $name, SpanContext $spanContext = null, ?int $timestamp = null): Span; + public function startSpan(string $name, SpanContext $spanContext = null, ?int $timestamp = null, ?string $kind = null): Span; /** * Retrieve the root span of the service diff --git a/src/Drivers/Zipkin/ZipkinTracer.php b/src/Drivers/Zipkin/ZipkinTracer.php index 527882f..ebe8558 100644 --- a/src/Drivers/Zipkin/ZipkinTracer.php +++ b/src/Drivers/Zipkin/ZipkinTracer.php @@ -181,11 +181,15 @@ public function init(): Tracer * @param string $name * @param SpanContext|null $spanContext * @param int|null $timestamp intval(microtime(true) * 1000000) + * @param string|null $kind * @return Span */ - public function startSpan(string $name, ?SpanContext $spanContext = null, ?int $timestamp = null): Span + public function startSpan(string $name, ?SpanContext $spanContext = null, ?int $timestamp = null, ?string $kind = null): Span { $rawSpan = $this->tracing->getTracer()->nextSpan($spanContext ? $spanContext->getRawContext() : null); + if ($kind) { + $rawSpan->setKind($kind); + } if ($this->rootSpan) { $span = new ZipkinSpan($rawSpan, false); diff --git a/src/Facades/Trace.php b/src/Facades/Trace.php index f6dd5da..3a288bb 100644 --- a/src/Facades/Trace.php +++ b/src/Facades/Trace.php @@ -12,7 +12,7 @@ /** * @see \Vinelab\Tracing\Contracts\Tracer * - * @method static Span startSpan(string $name, SpanContext $spanContext = null, ?int $timestamp = null) + * @method static Span startSpan(string $name, SpanContext $spanContext = null, ?int $timestamp = null, $kind = null) * @method static Span getRootSpan() * @method static Span getCurrentSpan() * @method static string|null getUUID() diff --git a/src/Middleware/TraceRequests.php b/src/Middleware/TraceRequests.php index 2928ec5..46e6887 100644 --- a/src/Middleware/TraceRequests.php +++ b/src/Middleware/TraceRequests.php @@ -49,7 +49,7 @@ public function handle(Request $request, Closure $next) if (!$this->shouldBeExcluded($request->path())) { $spanContext = $this->tracer->extract($request, Formats::ILLUMINATE_HTTP); - $span = $this->tracer->startSpan('Http Request', $spanContext); + $span = $this->tracer->startSpan('Http Request', $spanContext, null, \Zipkin\Kind\SERVER); $this->tagRequestData($span, $request); }