class CacheIntegration extends Feature

Traits

Track pushed scopes and spans using coroutine-local storage.

Constants

private FEATURE_KEY

private SESSION_KEY_RESOLUTION_CONTEXT_KEY

private SESSION_KEY_PLACEHOLDER

Properties

bool internal $detectSessionKeyOnConsole

Indicates whether to attempt to detect the session key when running in the console.

Methods

__construct(Container $container)

Create a new feature instance.

from  Feature
bool
isApplicable()

Indicate if the feature is applicable to the current environment.

void
register()

Register the feature in the environment.

from  Feature
void
onBoot()

Set up the feature in the environment.

void
onBootInactive()

Set up the feature in the environment in an inactive state (when no DSN was set).

from  Feature
void
boot()

Initialize the feature.

from  Feature
void
bootInactive()

Initialize the feature in an inactive state (when no DSN was set).

from  Feature
array
getUserConfig()

Retrieve the user configuration.

from  Feature
bool
shouldSendDefaultPii()

Determine if default PII should be sent.

from  Feature
bool
shouldCollectGenAiInputs()

Determine whether AI inputs may be collected.

from  Feature
bool
shouldCollectGenAiOutputs()

Determine whether AI outputs may be collected.

from  Feature
bool
isTracingFeatureEnabled(string $feature, bool $default = true)

Indicate if the given feature is enabled for tracing.

from  Feature
bool
isBreadcrumbFeatureEnabled(string $feature, bool $default = true)

Indicate if the given feature is enabled for breadcrumbs.

from  Feature
bool
canRecordSpans()

Determine if the active SDK client can record spans.

from  Feature
bool
canRecordBreadcrumbs()

Determine if the active SDK client can record breadcrumbs.

from  Feature
Span|null
getParentSpanIfSampled()

Get the current span if it is sampled.

void
withParentSpanIfSampled(callable $callback)

Call the callback with the current span if it is sampled.

SpanStatus|null
cancellationStatus(Throwable $cancellation, Throwable|null $exception = null)

Get the status of an operation that cancellation stopped.

void
pushSpan(Span $span)

Push a span onto the coroutine-local stack and set it as current on the hub.

Scope
pushScope()

Push a scope onto the hub and track the count in coroutine-local storage.

void
trackLocalSpan(string $key, Span $span)

Track an operation-local span without making it current on the Hub.

Span|null
maybePopSpan()

Pop a span from the coroutine-local stack and restore the parent span.

void
maybePopScope()

Pop a scope from the hub if one was pushed in this coroutine.

Span|null
maybeFinishSpan(SpanStatus|null $status = null)

Finish the current span if one exists on the coroutine-local stack.

Span|null
maybeFinishLocalSpan(string $key, SpanStatus|null $status = null)

Finish an operation-local span by key if one exists.

container()

Retrieve the application container.

array|null
resolveEventOrigin(array|null $backtrace = null)

Resolve the code location of the first application frame of the event.

string|null
resolveEventOriginAsString()

Resolve the code location of the event as a "file:line" string.

void
handleCacheEventsForBreadcrumbs(CacheEvent $event)

Record a breadcrumb for the given cache event.

void
handleCacheEventsForTracing(CacheEvent $event)

Record a span for the given cache event.

void
handleRedisCommands(CommandExecuted|CommandFailed $event)

Record a span for the given executed or failed Redis command.

bool
maybeHandleCacheEventAsEndOfSpan(CacheEvent $event)

Finish the span started for the given cache event, if the event ends one.

Details

in Feature at line 35
__construct(Container $container)

Create a new feature instance.

Parameters

Container $container

at line 68
bool isApplicable()

Indicate if the feature is applicable to the current environment.

Return Value

bool

in Feature at line 48
void register()

Register the feature in the environment.

Return Value

void

at line 78
void onBoot()

Set up the feature in the environment.

Return Value

void

in Feature at line 64
void onBootInactive()

Set up the feature in the environment in an inactive state (when no DSN was set).

Return Value

void

in Feature at line 71
void boot()

Initialize the feature.

Return Value

void

in Feature at line 81
void bootInactive()

Initialize the feature in an inactive state (when no DSN was set).

Return Value

void

in Feature at line 91
protected array getUserConfig()

Retrieve the user configuration.

Return Value

array

in Feature at line 99
protected bool shouldSendDefaultPii()

Determine if default PII should be sent.

Return Value

bool

in Feature at line 113
protected bool shouldCollectGenAiInputs()

Determine whether AI inputs may be collected.

Return Value

bool

in Feature at line 121
protected bool shouldCollectGenAiOutputs()

Determine whether AI outputs may be collected.

Return Value

bool

in Feature at line 146
protected bool isTracingFeatureEnabled(string $feature, bool $default = true)

Indicate if the given feature is enabled for tracing.

Parameters

string $feature
bool $default

Return Value

bool

in Feature at line 159
protected bool isBreadcrumbFeatureEnabled(string $feature, bool $default = true)

Indicate if the given feature is enabled for breadcrumbs.

Parameters

string $feature
bool $default

Return Value

bool

in Feature at line 182
protected bool canRecordSpans()

Determine if the active SDK client can record spans.

Return Value

bool

in Feature at line 196
protected bool canRecordBreadcrumbs()

Determine if the active SDK client can record breadcrumbs.

Return Value

bool

in WorksWithSpans at line 18
protected Span|null getParentSpanIfSampled()

Get the current span if it is sampled.

Return Value

Span|null

in WorksWithSpans at line 35
protected void withParentSpanIfSampled(callable $callback)

Call the callback with the current span if it is sampled.

Parameters

callable $callback

Return Value

void

in WorksWithSpans at line 53
protected SpanStatus|null cancellationStatus(Throwable $cancellation, Throwable|null $exception = null)

Get the status of an operation that cancellation stopped.

A direct cancellation with no earlier failure leaves the status unset: it is control flow, and the SDK has no canceled status. A known failure, or a cleanup failure carrying the cancellation, is an error.

Parameters

Throwable $cancellation
Throwable|null $exception

Return Value

SpanStatus|null

protected void pushSpan(Span $span)

Push a span onto the coroutine-local stack and set it as current on the hub.

Parameters

Span $span

Return Value

void

protected Scope pushScope()

Push a scope onto the hub and track the count in coroutine-local storage.

Return Value

Scope

protected void trackLocalSpan(string $key, Span $span)

Track an operation-local span without making it current on the Hub.

Parameters

string $key
Span $span

Return Value

void

protected Span|null maybePopSpan()

Pop a span from the coroutine-local stack and restore the parent span.

Return Value

Span|null

protected void maybePopScope()

Pop a scope from the hub if one was pushed in this coroutine.

Return Value

void

protected Span|null maybeFinishSpan(SpanStatus|null $status = null)

Finish the current span if one exists on the coroutine-local stack.

Parameters

SpanStatus|null $status

Return Value

Span|null

protected Span|null maybeFinishLocalSpan(string $key, SpanStatus|null $status = null)

Finish an operation-local span by key if one exists.

Parameters

string $key
SpanStatus|null $status

Return Value

Span|null

protected Container container()

Retrieve the application container.

Return Value

Container

protected array|null resolveEventOrigin(array|null $backtrace = null)

Resolve the code location of the first application frame of the event.

Parameters

array|null $backtrace

a backtrace captured earlier, for an event whose origin is no longer on the stack

Return Value

array|null

protected string|null resolveEventOriginAsString()

Resolve the code location of the event as a "file:line" string.

Return Value

string|null

at line 123
void handleCacheEventsForBreadcrumbs(CacheEvent $event)

Record a breadcrumb for the given cache event.

Parameters

CacheEvent $event

Return Value

void

at line 159
void handleCacheEventsForTracing(CacheEvent $event)

Record a span for the given cache event.

Parameters

CacheEvent $event

Return Value

void

at line 234
void handleRedisCommands(CommandExecuted|CommandFailed $event)

Record a span for the given executed or failed Redis command.

Parameters

CommandExecuted|CommandFailed $event

Return Value

void

at line 320
protected bool maybeHandleCacheEventAsEndOfSpan(CacheEvent $event)

Finish the span started for the given cache event, if the event ends one.

Parameters

CacheEvent $event

Return Value

bool