open-telemetry / opentelemetry-auto-session
OpenTelemetry auto-instrumentation for PHP Session functions
Requires
- php: ^8.2
- ext-opentelemetry: *
- ext-session: *
- open-telemetry/api: ^1.0
- open-telemetry/sem-conv: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- open-telemetry/sdk: ^1.0
- phan/phan: ^5.0
- php-http/mock-client: *
- phpstan/phpstan: ^1.1
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.19.2
- vimeo/psalm: 6.4.0
README
This package provides auto-instrumentation for PHP's native session functions.
Installation
composer require open-telemetry/opentelemetry-auto-session
Usage
The instrumentation hooks into PHP's native session functions to provide tracing capabilities. It automatically creates spans for session operations like session_start()
and session_destroy()
.
<?php // Make sure to initialize the OpenTelemetry SDK before using sessions // ... // Register the PHP Session instrumentation \OpenTelemetry\Contrib\Instrumentation\PhpSession\PhpSessionInstrumentation::register(); // Now any session operations will be automatically traced session_start(); // ... your code ... session_destroy();
Spans and Attributes
session.start
When session_start()
is called, a span named session.start
is created with the following attributes:
code.function_name
: The function name (session_start
)php.session.options.*
: Any options passed tosession_start()
php.session.id
: The session ID (if session was successfully started)php.session.name
: The session name (if session was successfully started)php.session.status
: Either "active" or "inactive"php.session.cookie.*
: Session cookie parameters
session.destroy
When session_destroy()
is called, a span named session.destroy
is created with the following attributes:
code.function_name
: The function name (session_destroy
)php.session.id
: The session ID (if available)php.session.name
: The session name (if available)
session.write_close
When session_write_close()
is called, a span named session.write_close
is created with the following attributes:
code.function.name
: The function name (session_write_close
)php.session.id
: The session ID (if available)php.session.name
: The session name (if available)
session.unset
When session_unset()
is called, a span named session.unset
is created with the following attributes:
code.function.name
: The function name (session_unset
)php.session.id
: The session ID (if available)php.session.name
: The session name (if available)
session.abort
When session_abort()
is called, a span named session.abort
is created with the following attributes:
code.function.name
: The function name (session_abort
)php.session.id
: The session ID (if available)php.session.name
: The session name (if available)
License
Apache 2.0