MediaWiki master
Wikimedia\Telemetry\Span Class Reference

Represents an OpenTelemetry span, i.e. More...

Inherits Wikimedia\Telemetry\SpanInterface.

Collaboration diagram for Wikimedia\Telemetry\Span:

Public Member Functions

 __construct (Clock $clock, TracerState $tracerState, SpanContext $context)
 
 __destruct ()
 
 activate ()
 Make this span the active span.This will cause any spans started without specifying an explicit parent to automatically become children of this span, for as long as it remains active.Activated spans form a stack; the most recently activated span is the active span.Long-running synchronous operations are good candidates for activation, especially if they will have other children spans created by code that is not explicitly aware of the parent span. For example, a MediaWiki EntryPoint might activate a span at the start of the request. Or a large unit of work (like wikitext parsing) might activate their own span, so that all database queries and other operations that occur during that work are automatically made descendants.
Returns
SpanInterface fluent interface

 
 deactivate ()
 Deactivate this span.Spans will also automatically be deactivated when they go out of scope.
Returns
SpanInterface fluent interface

 
 end (?int $epochNanos=null)
 End this span, optionally specifying an override for its end time.Spans will also automatically be ended shortly after they go out of scope, but calling end() yourself is a good way to ensure the end timestamp is accurate.
Parameters
int | null$epochNanosThe end time to use, or null to use the current time.
Returns
void

 
 getContext ()
 Get the context holding data for this span.
Returns
SpanContext

 
 setAttributes (array $attributes)
 Set attributes (arbitrary metadata) for this span.Any existing attributes with the same keys will be overwritten. Attributes with a null value will be ignored during export.These attributes will be attached to the span and will be searchable in the trace viewer.When deciding on the set of attributes to register as well as their naming, consider following Semantic Conventions where applicable.
Parameters
array$attributeskey-value mapping of attribute names to values
Returns
SpanInterface fluent interface

 
 setSpanKind (int $spanKind)
 Set the kind of this span, which describes how it relates to its parent and children within the overarching trace.
Parameters
int$spanKindOne of the SpanInterface::SPAN_KIND_** constants
See also
https://opentelemetry.io/docs/specs/otel/trace/api/#spankind
Returns
SpanInterface fluent interface

 
 setSpanStatus (int $status)
 Set the status of this span.By default this is SPAN_STATUS_UNSET.
Parameters
int$spanStatusOne of the SpanInterface::SPAN_STATUS_** constants
Returns
SpanInterface fluent interface

 
 start (?int $epochNanos=null)
 Start this span, optionally specifying an override for its start time.
Parameters
int | null$epochNanosThe start time to use, or null to use the current time.
Returns
SpanInterface

 

Additional Inherited Members

- Public Attributes inherited from Wikimedia\Telemetry\SpanInterface
const SPAN_KIND_CLIENT = 3
 Indicates that the span describes a request to some remote service.
 
const SPAN_KIND_CONSUMER = 5
 Indicates that the span describes a child of an asynchronous SpanInterface::SPAN_KIND_PRODUCER request.
 
const SPAN_KIND_INTERNAL = 1
 Default value.
 
const SPAN_KIND_PRODUCER = 4
 Indicates that the span describes the initiators of an asynchronous request.
 
const SPAN_KIND_SERVER = 2
 Indicates that the span covers server-side handling of a synchronous RPC or other incoming request from a remote client.
 
const SPAN_STATUS_ERROR = 2
 Indicates that the operation represented by this span failed.
 
const SPAN_STATUS_OK = 1
 Indicates that the operation represented by this span was successful.
 
const SPAN_STATUS_UNSET = 0
 Default value.
 

Detailed Description

Represents an OpenTelemetry span, i.e.

a single operation within a trace.

Since
1.43
See also
https://opentelemetry.io/docs/specs/otel/trace/api/#span

Definition at line 12 of file Span.php.

Constructor & Destructor Documentation

◆ __construct()

Wikimedia\Telemetry\Span::__construct ( Clock $clock,
TracerState $tracerState,
SpanContext $context )

Definition at line 20 of file Span.php.

◆ __destruct()

Wikimedia\Telemetry\Span::__destruct ( )

Member Function Documentation

◆ activate()

Wikimedia\Telemetry\Span::activate ( )

Make this span the active span.This will cause any spans started without specifying an explicit parent to automatically become children of this span, for as long as it remains active.Activated spans form a stack; the most recently activated span is the active span.Long-running synchronous operations are good candidates for activation, especially if they will have other children spans created by code that is not explicitly aware of the parent span. For example, a MediaWiki EntryPoint might activate a span at the start of the request. Or a large unit of work (like wikitext parsing) might activate their own span, so that all database queries and other operations that occur during that work are automatically made descendants.

Returns
SpanInterface fluent interface

Implements Wikimedia\Telemetry\SpanInterface.

Definition at line 89 of file Span.php.

◆ deactivate()

Wikimedia\Telemetry\Span::deactivate ( )

Deactivate this span.Spans will also automatically be deactivated when they go out of scope.

Returns
SpanInterface fluent interface

Implements Wikimedia\Telemetry\SpanInterface.

Definition at line 95 of file Span.php.

Referenced by Wikimedia\Telemetry\Span\__destruct().

◆ end()

Wikimedia\Telemetry\Span::end ( ?int $epochNanos = null)

End this span, optionally specifying an override for its end time.Spans will also automatically be ended shortly after they go out of scope, but calling end() yourself is a good way to ensure the end timestamp is accurate.

Parameters
int | null$epochNanosThe end time to use, or null to use the current time.
Returns
void

Implements Wikimedia\Telemetry\SpanInterface.

Definition at line 74 of file Span.php.

Referenced by Wikimedia\Telemetry\Span\__destruct().

◆ getContext()

Wikimedia\Telemetry\Span::getContext ( )

Get the context holding data for this span.

Returns
SpanContext

Implements Wikimedia\Telemetry\SpanInterface.

Definition at line 39 of file Span.php.

◆ setAttributes()

Wikimedia\Telemetry\Span::setAttributes ( array $attributes)

Set attributes (arbitrary metadata) for this span.Any existing attributes with the same keys will be overwritten. Attributes with a null value will be ignored during export.These attributes will be attached to the span and will be searchable in the trace viewer.When deciding on the set of attributes to register as well as their naming, consider following Semantic Conventions where applicable.

Parameters
array$attributeskey-value mapping of attribute names to values
Returns
SpanInterface fluent interface

Implements Wikimedia\Telemetry\SpanInterface.

Definition at line 44 of file Span.php.

◆ setSpanKind()

Wikimedia\Telemetry\Span::setSpanKind ( int $spanKind)

Set the kind of this span, which describes how it relates to its parent and children within the overarching trace.

Parameters
int$spanKindOne of the SpanInterface::SPAN_KIND_** constants
See also
https://opentelemetry.io/docs/specs/otel/trace/api/#spankind
Returns
SpanInterface fluent interface

Implements Wikimedia\Telemetry\SpanInterface.

Definition at line 50 of file Span.php.

◆ setSpanStatus()

Wikimedia\Telemetry\Span::setSpanStatus ( int $status)

Set the status of this span.By default this is SPAN_STATUS_UNSET.

Parameters
int$spanStatusOne of the SpanInterface::SPAN_STATUS_** constants
Returns
SpanInterface fluent interface

Implements Wikimedia\Telemetry\SpanInterface.

Definition at line 56 of file Span.php.

◆ start()

Wikimedia\Telemetry\Span::start ( ?int $epochNanos = null)

Start this span, optionally specifying an override for its start time.

Parameters
int | null$epochNanosThe start time to use, or null to use the current time.
Returns
SpanInterface

Implements Wikimedia\Telemetry\SpanInterface.

Definition at line 62 of file Span.php.


The documentation for this class was generated from the following file: