symsensor/actuator-bundle
A Symfony bundle that adds actuator-style endpoints for application health, info, and runtime diagnostics. Configure readiness/liveness checks and expose operational status for monitoring and deployment workflows.
symsensor/actuator-bundle is a Symfony bundle, not a Laravel package. It relies on Symfony's Bundle class, DI compiler passes, and Symfony routing. Do not composer require it into a Laravel app expecting it to work; Laravel will not discover or boot it. v1.1.0 does not change this — it only widens framework support.^1.1 if you run Symfony 7, and confirm your PHP version satisfies Symfony 7's floor (PHP 8.2+). Run composer why-not symfony/framework-bundle 7.0 if resolution stalls — the constraint conflict is almost always in this bundle's transitive requirements, not your app.src/ for the health indicator contract (likely HealthIndicatorInterface), the bundle extension class, and the controller that exposes the actuator route. Confirm the default endpoint path (often /actuator/health or a configurable equivalent) and the JSON response shape.composer require symsensor/actuator-bundle:^1.1, let Flex register the bundle (or add it to config/bundles.php), register health indicator services with the appropriate DI tag, and configure the endpoint path. On Symfony 7 with Flex, the recipe registration is the step to verify first if the route 404s./health JSON endpoint returning {"status":"UP"} or {"status":"DOWN"} for load balancers, Kubernetes liveness/readiness probes, and uptime monitors.spatie/laravel-health or build a small HealthController plus a HealthCheck contract. The Symfony 7 bump gives you no new reason to introduce a Symfony kernel into a Laravel app; if you genuinely need this bundle's behavior, run it in a small Symfony 6.4/7.0 sidecar service and point your infrastructure probes at that service.HealthManager that iterates registered checks.actuator.health_indicator) and a compiler pass. Symfony 7 tightened service/attribute defaults, so re-verify after upgrading that your indicators are still autoconfigured and tagged — a missing tag silently drops a check from the aggregate rather than erroring. In Laravel, replicate with a config array of check classes resolved from the container, or tag them in a service provider's register() method.HEALTHCHECK, Kubernetes livenessProbe/readinessProbe with sensible initialDelaySeconds and timeoutSeconds, ALB/ELB target group health checks, and post-deploy smoke tests. A DOWN state must return HTTP 503 so orchestrators act on it.interface HealthCheck { public function check(): HealthResult; }
class HealthManager {
public function __construct(private array $checks) {}
public function run(): array {
return collect($this->checks)->mapWithKeys(
fn ($c) => [$c::class => $c->check()->toArray()]
)->all();
}
}
Register checks in a service provider, return response()->json($report, $ok ? 200 : 503) from a GET /health route.security.yaml access control; in Laravel use middleware, an IP allowlist, or a signed internal token."symsensor/actuator-bundle": "1.1.0"), vendor/fork it if it becomes load-bearing, and keep a migration path. For Laravel, prefer maintained alternatives like spatie/laravel-health.bin/console debug:router | grep -i health), indicators still tagged, and the JSON shape unchanged for anything parsing it.symfony/* ranges) before assuming it works with Symfony 7.1/7.2 or PHP 8.4.Http::timeout(2) and a low connection timeout for database checks./health frequently and concurrently. Cache results and use a lock so expensive checks run once per interval, not once per probe.bin/console debug:container --tag=<indicator-tag> to confirm registration and check var/log/. In Laravel, use php artisan route:list, php artisan about, and duration logs. Add an internal-only ?verbose=1 mode that returns per-check details.config/bundles.php — on Symfony 7 this is the most common reason the health route disappears after an upgrade.How can I help you explore Laravel packages today?