summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/api/Trace/SpanContextInterface.php
blob: d15bc5987a87e71d185343154df95a559d8ae0ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php

declare(strict_types=1);

namespace OpenTelemetry\API\Trace;

/**
 * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/trace/api.md#spancontext
 */
interface SpanContextInterface
{
    public static function createFromRemoteParent(string $traceId, string $spanId, int $traceFlags = TraceFlags::DEFAULT, ?TraceStateInterface $traceState = null): SpanContextInterface;
    public static function getInvalid(): SpanContextInterface;
    public static function create(string $traceId, string $spanId, int $traceFlags = TraceFlags::DEFAULT, ?TraceStateInterface $traceState = null): SpanContextInterface;

    /** @psalm-mutation-free */
    public function getTraceId(): string;
    public function getTraceIdBinary(): string;

    /** @psalm-mutation-free */
    public function getSpanId(): string;
    public function getSpanIdBinary(): string;
    public function getTraceFlags(): int;
    public function getTraceState(): ?TraceStateInterface;
    public function isValid(): bool;
    public function isRemote(): bool;
    public function isSampled(): bool;
}