nuboxdevcom / laravel-healthcheck
Liveness and Readiness Probes in your Laravel application
Requires
- php: ^8.1
- ext-pdo: *
- illuminate/support: ^9.25
Requires (Dev)
- roave/security-advisories: dev-latest
README
Requirements
- PHP ^8.1
- Laravel ^9
Installation
composer require nuboxdevcom/laravel-healthcheck
php artisan migrate
- Add these lines in src/Console/Kernel.php if your uses scheduler and job queue:
$schedule->command('healthcheck:heartbeat')->everyMinute(); // For monitor scheduler $schedule->job(Heartbeat::class)->everyMinute(); // For monitor job queue (redis/horizon/...)
Using the health checks
You can configure your monitoring to send a ping to the URLs of the health probes in order to be alerted in the event of
a problem.
In Kubernetes, you can also use probes for container health checks with the LivenessProbe & ReadinessProbe.
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
Liveness Probes
There are dedicated liveness probes for different services.
They will response with http 200 status code if the service is up and running without problems (all services available).
Https status 503 is returned if the service is not available.
- Backend service:
{APP_URL}/healthcheck/liveness/backend
- Database service:
{APP_URL}/healthcheck/liveness/database
- Schedule service:
{APP_URL}/healthcheck/liveness/schedule
- Queue service:
{APP_URL}/healthcheck/liveness/queue
- Custom components checks:
{APP_URL}/healthcheck/liveness/components/{comp1,comp2,...}
For custom checks, availables components is
queue
|schedule
|database
|backend
with comma separated
Eg:{APP_URL}/healthcheck/liveness/components/{queue,schedule,database,backend}
Readiness Probe
Readiness probe is identical for all services: {APP_URL}/healthcheck/readiness
It will response with http 200 status code if the service is ready to take http requests.