summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/sdk/Trace/SpanProcessorInterface.php
blob: 24bcea2ddc77845e7fe6f49150410e1cd26ed720 (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
29
30
31
32
33
34
35
36
37
38
<?php

declare(strict_types=1);

namespace OpenTelemetry\SDK\Trace;

use OpenTelemetry\Context\ContextInterface;
use OpenTelemetry\SDK\Common\Future\CancellationInterface;

/** @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/trace/sdk.md#span-processor */
interface SpanProcessorInterface
{
    /**
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/specification/trace/sdk.md#onstart
     */
    public function onStart(ReadWriteSpanInterface $span, ContextInterface $parentContext): void;

    /**
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/specification/trace/sdk.md#onendspan
     */
    public function onEnd(ReadableSpanInterface $span): void;

    /**
     * Export all ended spans to the configured Exporter that have not yet been exported.
     * Returns `true` if the flush was successful, otherwise `false`.
     *
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/specification/trace/sdk.md#forceflush-1
     */
    public function forceFlush(?CancellationInterface $cancellation = null): bool;

    /**
     * Cleanup; after shutdown, calling onStart, onEnd, or forceFlush is invalid
     * Returns `false` is the processor is already shutdown, otherwise `true`.
     *
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/specification/trace/sdk.md#shutdown-1
     */
    public function shutdown(?CancellationInterface $cancellation = null): bool;
}