google/cloud-error-reporting
Idiomatic PHP client for Google Cloud Error Reporting (Stackdriver), which counts, analyzes, and aggregates crashes across your cloud services. Install via Composer; supports REST and gRPC. Beta component from Google Cloud PHP.
1. "Build vs. buy" for error observability. The package itself is not the product — it is a generated PHP client for Google Cloud Error Reporting (formerly Stackdriver). Adopting it is really a decision to buy error aggregation/grouping from GCP rather than build a custom exception pipeline or sign a new SaaS contract. PM framing: this is an infrastructure procurement decision, not a feature decision.
2. Reliability roadmap / MTTR investment. Supports any OKR around crash visibility, on-call burden, or incident detection for PHP services. It gives engineering a programmatic path to counted, aggregated crash data — the raw input for MTTR reduction work (alerting, triage automation, regression detection).
3. Cloud standardization and vendor consolidation. If the org has already committed to GCP, this lets the product keep observability inside the existing IAM, billing, VPC-SC, and audit boundary — avoiding a new vendor security review, DPA, and procurement cycle. Strong lever in regulated or slow-procurement environments.
4. Data residency / regional compliance. Regional resource names and Universe Domain support mean error telemetry can stay in-region (EU, APAC) while still rolling up to a central view. This unlocks markets or customer tiers that block US-only telemetry vendors.
5. Internal ops tooling and automation (the highest-leverage PM use case). Because the client exposes error groups and stats — not just writes — it supports building things the GCP console doesn't give you: exporting error trends to BigQuery, auto-filing Jira tickets from recurring error groups, feeding an internal status page, or a custom reliability dashboard per team/service.
6. Cost modelling for observability spend. No license fee — cost is log ingestion and retention. Useful when comparing against per-seat/per-event SaaS pricing at your projected error volume, and when deciding whether error data is a "must-retain 30 days" or "sampled" asset.
7. Scoping decision on what NOT to build. This package does not give you session replay, frontend/JS error tracking, breadcrumbs, release health, APM/tracing, or an alert-routing UI. Documenting that explicitly prevents a roadmap that assumes "we have error tracking" when you actually only have server-side PHP crash aggregation.
8. Gated rollout / spike investment. Appropriate for a feature-flagged pilot: instrument one Laravel service, compare MTTR and on-call pages against the status quo before committing a platform-wide migration.
Where I'd flag a product risk: for most Laravel teams, Error Reporting already ingests errors automatically from Cloud Logging. If your goal is merely "send errors somewhere," you may need structured logging, not this client. This package's real value is on the read/query side. Make sure the roadmap asks for the right thing.
Adopt when:
Look elsewhere when:
sentry/sentry-laravel), Flare (Spatie, Laravel-native), Bugsnag, and Rollbar all ship exception-handler hooks, queue/job context, user context, release tagging, breadcrumbs, and alert routing out of the box. This package ships none of that — you write the integration yourself.App\Exceptions\Handler integration, a fallback when GCP is unreachable, retry/backoff around rate limits, an abstraction layer to avoid vendor lock-in, and tests with mocked clients. Budget 1–2 sprints, not 2 days.Decision rule I'd apply: Choose this if the primary need is querying/automating on error data inside a GCP-native org. Choose a SaaS APM/error tool if the primary need is developer experience and time-to-first-useful-alert.
On the signals: 20 stars and 0 dependents undersells it — it's a generated artifact inside the google-cloud-php monorepo, maintained by Google on a regular release cadence, PHP 8.4 compatible, and Apache-2.0. Maturity is "beta" and has been for a long time; treat the version label as a stability caveat, not a blocker. The v0.26.0 removal of deprecated GAPICs is the one breaking change to plan around — new integrations are unaffected.
To the executive team — the one-paragraph version: "We can add centralized crash visibility for our PHP services without a new vendor, a new contract, or a new security review. It runs inside the Google Cloud account we already pay for, is maintained by Google, and is free to license — we only pay for log storage we're largely already consuming. The trade-off is that it's infrastructure, not a polished product: our engineers do the wiring. I'm recommending a one-sprint, single-service pilot with a clear success metric before any broader commitment."
To engineering — the honest framing:
App\Exceptions\Handler::report(); abstract it behind an ErrorReporter interface so we can swap vendors later without touching call sites.To finance — the cost story:
To security/compliance:
The ask: Approve a time-boxed spike — one Laravel service, 1–2 sprints, feature-flagged — with two success criteria: (a) decrease in time-to-detect for production PHP exceptions, and (b) measured ingest cost at projected volume. Decision gate at the end: roll out, or fall back to a Laravel-native SaaS tool. What I would not approve is a platform-wide rollout before we've proven the integration cost and the alerting story, because the package gives us data, not a workflow — the console's alerting is adequate but not a substitute for a mature incident tool.
How can I help you explore Laravel packages today?