summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/api/Trace/NoopSpanBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/open-telemetry/api/Trace/NoopSpanBuilder.php')
-rw-r--r--vendor/open-telemetry/api/Trace/NoopSpanBuilder.php65
1 files changed, 65 insertions, 0 deletions
diff --git a/vendor/open-telemetry/api/Trace/NoopSpanBuilder.php b/vendor/open-telemetry/api/Trace/NoopSpanBuilder.php
new file mode 100644
index 000000000..6f971e525
--- /dev/null
+++ b/vendor/open-telemetry/api/Trace/NoopSpanBuilder.php
@@ -0,0 +1,65 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\API\Trace;
+
+use OpenTelemetry\Context\Context;
+use OpenTelemetry\Context\ContextInterface;
+use OpenTelemetry\Context\ContextStorageInterface;
+
+final class NoopSpanBuilder implements SpanBuilderInterface
+{
+ private ContextStorageInterface $contextStorage;
+
+ /** @var ContextInterface|false|null */
+ private $parentContext = null;
+
+ public function __construct(ContextStorageInterface $contextStorage)
+ {
+ $this->contextStorage = $contextStorage;
+ }
+
+ public function setParent($context): SpanBuilderInterface
+ {
+ $this->parentContext = $context;
+
+ return $this;
+ }
+
+ public function addLink(SpanContextInterface $context, iterable $attributes = []): SpanBuilderInterface
+ {
+ return $this;
+ }
+
+ public function setAttribute(string $key, $value): SpanBuilderInterface
+ {
+ return $this;
+ }
+
+ public function setAttributes(iterable $attributes): SpanBuilderInterface
+ {
+ return $this;
+ }
+
+ public function setStartTimestamp(int $timestampNanos): SpanBuilderInterface
+ {
+ return $this;
+ }
+
+ public function setSpanKind(int $spanKind): SpanBuilderInterface
+ {
+ return $this;
+ }
+
+ public function startSpan(): SpanInterface
+ {
+ $parentContext = Context::resolve($this->parentContext, $this->contextStorage);
+ $span = Span::fromContext($parentContext);
+ if ($span->isRecording()) {
+ $span = Span::wrap($span->getContext());
+ }
+
+ return $span;
+ }
+}