open-telemetry / opentelemetry-auto-session
OpenTelemetry auto-instrumentation for PHP Session functions
Installs: 275
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/open-telemetry/opentelemetry-auto-session
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