Repository navigation
SentryObservabilityAdapter
Viames Marino edited this page Apr 22, 2026
·
1 revision
Pair\Services\SentryObservabilityAdapter forwards Pair observability spans and events to Sentry without requiring the Sentry PHP SDK.
It implements ObservabilityAdapter and ObservabilityEventAdapter:
- completed spans are sent as Sentry transaction envelopes
- warning/error log events are sent as Sentry event envelopes
- adapter failures are swallowed by
Observability, so telemetry cannot break application flow
For projects that already use the official Sentry SDK, prefer the SDK. This adapter exists as a dependency-free bridge for Pair projects that want basic error and tracing export with minimal setup.
SENTRY_DSN=
SENTRY_ENVIRONMENT=
SENTRY_RELEASE=
SENTRY_TRACES_SAMPLE_RATE=1.0
SENTRY_ERROR_SAMPLE_RATE=1.0
SENTRY_TIMEOUT=10
SENTRY_CONNECT_TIMEOUT=3Notes:
-
SENTRY_DSNcontrols where events are sent. -
SENTRY_ENVIRONMENTfalls back toAPP_ENV. -
SENTRY_RELEASEfalls back toAPP_VERSION. -
SENTRY_TRACES_SAMPLE_RATEcontrols transaction export. -
SENTRY_ERROR_SAMPLE_RATEcontrols warning/error event export.
use Pair\Core\AdapterKeys;
use Pair\Core\Application;
use Pair\Services\SentryObservabilityAdapter;
$app = Application::getInstance();
$app->setAdapter(AdapterKeys::OBSERVABILITY, new SentryObservabilityAdapter());Using AdapterKeys::OBSERVABILITY also activates the Observability facade for the current process.
- Keep
SENTRY_DSNin.env, not in Git. - Start with low
SENTRY_TRACES_SAMPLE_RATEin high-traffic production systems. - Leave
SENTRY_ERROR_SAMPLE_RATE=1.0unless the project has very high error volume. - Pair redacts common sensitive attribute names before telemetry leaves the process.
- Do not attach request bodies or raw SQL through custom attributes.
See also: Observability, ObservabilityEvent, OpenTelemetryHttpExporter, Configuration file.
Maintained by Viames Marino — VM Ingegneria · Professional enquiries
Home · Setup · Configuration
Build with Pair 4
- Generator
- Controllers and responses
- Read models
- ActiveRecord and queries
- Forms and validation
- PairUI.js and HTML fragments
APIs and authentication
- API guide and CRUD
- Middleware and rate limits
- Users, sessions, and ACL
- Passkeys and social login
- Native mobile setup
Integrate and operate
- Integrations
- Runtime extensions and adapter keys
- Cache and cache stores
- Logs and observability
- PWA and push
- Packages and distribution
- Upgrade to v4