Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Health Check Laravel Package

ukfast/laravel-health-check

Laravel health check package that exposes a configurable endpoint for monitoring app health. Run checks on database, cache, queue, storage, Redis and custom services, returning JSON output and proper HTTP status codes for load balancers, Kubernetes probes and uptime monitors.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. ans-group/laravel-health-check is an infrastructure-adjacent library: it exposes a health endpoint consumed by load balancers, Kubernetes liveness/readiness probes, uptime monitors, and deploy gates. That places it in the operational control plane rather than the product code path — low architectural surface area, but high blast radius if it misbehaves. v3.0.0 does not change that shape; it is a platform-support release only (no new checks, no new endpoint features, no configuration additions called out). Fit with a standard Laravel service architecture is high and the integration is shallow.

Compatibility matrix implied by v3.0.0:

Dimension v3.0.0 supported Explicitly dropped
Laravel 12.x, 13.x ≤ 11.x
PHP 8.2 – 8.5 ≤ 8.1

Note the coupling: the PHP floor (8.2) is derived from Laravel 12's own floor, so the package is now a strict mirror of Laravel's supported-version policy ("only versions with bug/security fixes"). That is a deliberate policy choice by the maintainer and is the single most important fact in this release.

Integration feasibility. Straightforward: Composer dependency, config publish, optional route/command registration. No database migrations, no queue workers, no external service contracts, no auth surface changes described. The realistic effort is dominated not by the package but by the platform upgrade it now requires — PHP 8.2+ and Laravel 12+ must already be true, or the package upgrade is blocked.

Technical risk.

  1. Forced platform coupling. Any application on Laravel ≤ 11 or PHP ≤ 8.1 cannot take v3.x. If a security issue is later fixed only on v3, those applications are stranded on v2.x with no backport guarantee. This turns a trivial utility into a constraint that can gate security patching.
  2. Version-support ambiguity. The release notes do not state whether v2.x continues to receive security fixes, or for how long. Unknown = risk.
  3. Maturity of the "supported" edges. "Support for Laravel 13" and "PHP 8.5" may mean CI-tested, or merely constraint-relaxed. Those are very different assurances for a package that runs in the probe path.
  4. Unchanged behavior is unverified. The changelog shows no functional delta, but a major bump that touches composer.json can still alter autoloading, service-provider registration, or default config. Confirm with a diff, not a changelog.
  5. Vendor concentration. Single-vendor (ANS Group), small-maintainer package sitting on the critical path of every deploy and probe.

Key questions.

  • Is v2.x still maintained with security fixes, and until when? Is there a written EOL date?
  • Is Laravel 12 + PHP 8.2 the only combination tested, or is the full 12/13 × 8.2–8.5 matrix in CI?
  • Is "Laravel 13 support" against a GA release or a pre-release/beta?
  • Does v3 change the config schema, route path, HTTP status codes, or JSON response shape? (Integrators parsing the body will break on shape changes.)
  • Are the shipped checks and their timeouts unchanged from v2.1.1?
  • Any deprecations or behavior flags we should pre-adopt while still on v3?
  • Does it remain compatible with Octane/Swoole and with config:cache in a read-only container filesystem?

Integration Approach

Stack fit. Suitable for any Laravel 12/13 service using Composer and a standard config/ + routes/ layout. It is a natural fit for containerised workloads behind an orchestrator probe, and for legacy VM/ALB targets using HTTP health checks. It is not a fit for applications that must remain on Laravel 10/11 for vendor or PHP-extension reasons — for those, stay pinned to v2.x and accept the maintenance-tail risk explicitly.

Migration path.

  1. Inventory first. Produce a service-by-service table of Laravel and PHP versions and the currently pinned health-check version. Classify each service into "v3-eligible" (L12/13, PHP 8.2+) or "blocked".
  2. Upgrade the platform, then the package. Never do both in one PR. PHP and Laravel minor/major upgrades land first and soak in staging; the health-check bump is a one-line follow-up. This keeps rollback semantics clean.
  3. Pin exactly, then widen. Use ^3.0 only after the service has run v3 in staging with real probe traffic. Prefer an explicit constraint during rollout.
  4. Snapshot the contract. Capture the pre-upgrade and post-upgrade HTTP response (status code, headers, body) for the health route and diff them. This is the artifact that proves "no functional change" to the on-call team.
  5. Blocked services. Formally record v2.x as a tracked exception with a date by which the platform upgrade will happen. Do not let it become silent technical debt.
  6. Canary. Roll to one non-critical service, one environment, then one production replica group before fleet-wide.

Compatibility and sequencing notes. Sequencing matters most in the other direction: if the platform roadmap already targets Laravel 12/13 (likely, given the annual Laravel cadence), taking v3 early is cheap and taking it late is expensive — the package will drift further ahead of your estate. Conversely, if the estate is mid-migration, the health-check package should be treated as a trailing dependency, bumped after the framework migration completes, never as the driver.

Dependency-graph caution. Check whether any other package in the graph already forces Laravel 12+. If so, v3.0.0 is a free upgrade and this is a non-event. If the health-check package is the first thing demanding L12, it is a leading indicator that the estate is falling behind the supported window — escalate that to the platform roadmap rather than absorbing it locally.

Operational Impact

Maintenance. Ongoing cost is low but predictable and recurring. Given the maintainer's stated policy of tracking only Laravel versions with active bug/security fixes, expect a major release of this package roughly annually, synchronised to Laravel majors. Budget a recurring dependency-bump task rather than a one-off. There is no database, no state, and no persistent data to migrate — the operational surface is config plus a route.

Support. Two risks to socialise: (a) the v2.x support window is unpublished — get a commitment or plan to be off it; (b) the package is a single-vendor, small-maintainer dependency in the probe path. Mitigation is cheap: the health check is easy to reimplement or swap (e.g. to an in-house controller or an alternative package) if the vendor stalls. Ensure the team knows the endpoint is replaceable, so a stalled upstream is a day of work, not an incident.

Scaling. Two distinct scaling considerations:

  • Probe amplification. Health endpoints are hit by every replica, at probe frequency, sometimes plus an external monitor plus a load balancer. If checks are "deep" (database round-trip, cache write, queue depth, outbound HTTP), load scales linearly with replica count and multiplies during autoscaling events and incident storms. Keep the liveness/readiness path shallow and deterministic; push deep dependency validation to a separate, less-frequently-polled endpoint.
  • Cascading failure. A health check that fails on a degraded (not dead) dependency will cause the orchestrator to restart healthy pods or the LB to drain the whole fleet — converting a partial outage into a full one. Verify timeouts, thresholds, and which checks gate readiness versus liveness. This is the highest-severity operational risk in the whole assessment and it is a configuration and design risk, not a version risk.

Failure modes to instrument.

  • Health endpoint returns 5xx for a reason unrelated to service health (config cache miss, missing env var, log disk full, exception in a check) → mass restart loop.
  • Response body or status-code change silently breaks an external monitor's parsing or alerting rule.
  • Route not registered in a given environment (cached routes from a prior deploy) → 404 from the probe → orchestrator treats pod as dead.
  • PHP 8.5-specific deprecation or type error surfaced only on the newest runtime — relevant only if you are an early PHP 8.5 adopter; if so, do not adopt 8.5 and v3 simultaneously.
  • Read-only container filesystem or missing writable storage/ causing a disk/cache check to report unhealthy.

Ramp-up. Low engineering ramp: half a day to a day for a mid-level engineer to wire up, verify the response contract, and document the endpoint. The real onboarding is organisational: the platform/on-call team must own three policies — (1) which checks are enabled per environment, (2) how probes are configured to avoid cascading failure, and (3) the annual Laravel-major-aligned dependency bump. Assign that ownership explicitly; unowned probe configuration is how health checks turn into outage amplifiers.

Recommendation. Adopt v3.0.0 for all services already on Laravel 12+/PHP 8.2+, gated by a staging soak and a before/after response-contract diff. Treat Laravel ≤ 11 services as tracked exceptions on v2.x with a dated remediation plan, and press the maintainer for a published v2.x EOL. Do not treat this release as a functional change — treat it as a platform-support signal and a forcing function for the framework upgrade roadmap.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
roundly-consulting/kubernetes-api-for-laravel
roundly-consulting/plausible-for-laravel
gvp/gvp-laravel-template
metasyncsite/laravel-metasync-client
roundly-consulting/onboarding-for-laravel
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo