scoutapp/scout-apm-symfony-bundle
Symfony bundle for integrating Scout APM application performance monitoring into Symfony apps. Track slow requests, database queries, and errors to identify bottlenecks and improve performance with minimal configuration and low overhead.
ScoutApm\Agent instrumentation API with scoutapp/scout-apm-laravel. For a Laravel shop, that makes this repo a reference implementation, not a dependency: read it to understand what Scout auto-instruments, what the config surface actually exposes, and how much hand-instrumentation you would still owe — then apply that answer to the Laravel package.Consider it when all of the following hold:
scoutapp/scout-apm-laravel; use this repo for its documentation of config knobs (key, name, monitor, auto-instrument toggles, log location, revision SHA) and instrumentation patterns, which transfer directly.Look elsewhere when:
composer.json constraint before bumping platform.php; a green CI matrix is not the same as a permissive constraint.For executives: Treat this as evaluation evidence, not a deliverable. Two pull requests, no features, no breaking changes: PHP 8.3 added to CI and release automation. The signal is modest but real — the Scout integration is actively maintained and tested against the runtime we plan to adopt, and future patches will be predictable to consume. The decision that actually matters is build vs. buy for observability: a Scout subscription versus an OpenTelemetry-based path. The cost is per-host plus engineering time for instrumentation and ignore-list hygiene; the upside is fast, low-ceremony latency/throughput/error attribution without building a pipeline. Recommend a timeboxed trial on one service with a success criterion (e.g. we can attribute a p95 regression to a specific query or external call within one incident) before committing.
For engineering: This is a Symfony bundle, so for our Laravel services the actionable artifact is scoutapp/scout-apm-laravel — use this repo to understand the shared ScoutApm\Agent API and the canonical config surface. No API, config, or instrumentation changes; adopting Scout is routine dependency work with no migration burden. Three items to size: (1) the agent is a downloaded binary, not a Composer package — bake it into images and verify the handshake via the agent log, because missing key, monitor=false, or an unreachable agent all fail silently by design; (2) long-running processes (Octane, queue workers) leak transaction state — always stop transactions in try/finally, and wrap background units of work explicitly since they get no web transaction; (3) instrument at boundaries (middleware, service decorators), never at leaves — overhead scales with span count, not request count. Add a staging smoke test asserting a transaction was recorded; do not verify by the absence of dashboard errors. Pin ^1.2 and let minors flow through staging to catch agent-binary drift rather than PHP API breakage.
How can I help you explore Laravel packages today?