Reference documentation and code samples for the Stackdriver Trace Client class Span.
This plain PHP class represents a Span resource.
A span represents a single timed event within a Trace. Spans can be nested and form a trace tree. Often, a trace contains a root span that describes the end-to-end latency of an operation and, optionally, one or more subspans for its suboperations. Spans do not need to be contiguous. There may be gaps between spans in a trace.
Example:
use Google\Cloud\Trace\TraceClient; $traceClient = new TraceClient(); $trace = $traceClient->trace(); $span = $trace->span([ 'name' => 'span name', 'attributes' => ['foo' => 'bar'], 'stackTrace' => debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) ]); $span->setStartTime(); $span->setEndTime();
Methods
__construct
Instantiate a new Span instance.
Parameters | |
---|---|
Name | Description |
traceId | string A unique identifier for a trace within a project; it is a 32-character hexadecimal encoding of a 16-byte array. |
options | array Configuration options. |
↳ spanId | string The ID of the span. If not provided, one will be generated automatically for you. |
↳ name | string The name of the span. |
↳ startTime | DateTimeInterface|int|float|string Start time of the span in nanoseconds. If provided as a string, it must be in "Zulu" format. If provided as an int or float, it is expected to be a Unix timestamp. |
↳ endTime | DateTimeInterface|int|float|string End time of the span in nanoseconds. If provided as a string, it must be in "Zulu" format. If provided as an int or float, it is expected to be a Unix timestamp. |
↳ parentSpanId | string ID of the parent span if any. |
↳ attributes | array Associative array of $label => $value to attach to this span. |
↳ stackTrace | array Stack trace captured at the start of the span. |
↳ timeEvents | TimeEvent[] A set of time events. You can have up to 32 annotations and 128 message events per span. |
↳ links | Link[] Links associated with the span. You can have up to 128 links per Span. |
↳ status | Status An optional final status for this span. |
↳ sameProcessAsParentSpan | bool A highly recommended but not required flag that identifies when a trace crosses a process boundary. True when the parent_span belongs to the same process as the current span. |
setStartTime
Set the start time for this span.
Example:
// Set the start time to now $span->setStartTime();
// Set the start time to a custom time $span->setStartTime(new \DateTime('2017-11-29 11:51:23'));
Parameter | |
---|---|
Name | Description |
when | DateTimeInterface|int|float|string [optional] The start time of this span. Defaults to now. If provided as a string, it must be in "Zulu" format. If provided as an int or float, it is expected to be a Unix timestamp. |
startTime
Returns a "Zulu" formatted string representing the start time for this span.
Example:
echo $span->startTime();
Returns | |
---|---|
Type | Description |
string |
setEndTime
Set the end time for this span.
Example:
// Set the end time to now $span->setEndTime();
// Set the end time to a custom time $span->setEndTime(new \DateTime('2017-11-29 11:51:23'));
Parameter | |
---|---|
Name | Description |
when | DateTimeInterface|int|float|string [optional] The end time of this span. Defaults to now. If provided as a string, it must be in "Zulu" format. If provided as an int or float, it is expected to be a Unix timestamp. |
endTime
Returns a "Zulu" formatted string representing the end time for this span.
Example:
echo $span->endTime();
Returns | |
---|---|
Type | Description |
string |
setSpanId
Set the ID of this span
Example:
$span->setSpanId('1234abcd');
Parameter | |
---|---|
Name | Description |
spanId | string |
setParentSpanId
Set the ID of this span's parent
Example:
$span->setParentSpanId('1234abcd');
Parameter | |
---|---|
Name | Description |
spanId | string |
spanId
Retrieve the ID of this span.
Example:
echo $span->spanId();
Returns | |
---|---|
Type | Description |
string |
traceId
Retrieve the TraceID of this span
Example:
echo $span->traceId();
Returns | |
---|---|
Type | Description |
string |
parentSpanId
Retrieve the ID of this span's parent if it exists.
Example:
echo $span->parentSpanId();
Returns | |
---|---|
Type | Description |
string |
name
Retrieve the name of this span.
Example:
echo $span->name();
Returns | |
---|---|
Type | Description |
string |
info
Returns the info array for serialization.
Returns | |
---|---|
Type | Description |
array |
addTimeEvents
Add multiple TimeEvent to this span.
Example:
$annotation = new Annotation('some message'); $messageEvent = new MessageEvent('message id'); $span->addTimeEvents([ $annotation, $messageEvent ]);
Parameter | |
---|---|
Name | Description |
events | array<Google\Cloud\Trace\TimeEvent> |
addTimeEvent
Add a single TimeEvent to this span.
Example:
$annotation = new Annotation('some message'); $span->addTimeEvent($annotation);
Parameter | |
---|---|
Name | Description |
event | Google\Cloud\Trace\TimeEvent |
addLinks
Add multiple Links to this span.
Example:
$link = new Link('abcd1234', 'abcd2345'); $span->addLinks([$link]);
Parameter | |
---|---|
Name | Description |
links | array<Google\Cloud\Trace\Link> |
addLink
Add a single Link to this span.
Example:
$link = new Link('abcd1234', 'abcd2345'); $span->addLink($link);
Parameter | |
---|---|
Name | Description |
link | Google\Cloud\Trace\Link |