saritasa / laravel-healthcheck
Package for projects health-check
Installs: 2 553
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 11
Forks: 0
Open Issues: 0
Requires
- php: >=7.1
- illuminate/database: ^5.6 || 6.* || 7.* || 8.* || 9.* || 10.* || 11.*
- illuminate/routing: ^5.6 || 6.* || 7.* || 8.* || 9.* || 10.* || 11.*
- illuminate/support: ^5.6 || 6.* || 7.* || 8.* || 9.* || 10.* || 11.*
- saritasa/php-common: ^1.1
Requires (Dev)
- mockery/mockery: ^1.1
- phpunit/phpunit: ^8.5
- slevomat/coding-standard: >=5.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-04-09 06:25:44 UTC
README
Package for Laravel-based project self-diagnostics. Implements basic checks (ex. if application can connect to DB server) and allows extensibility (ex. implement custom checks)
Laravel 5.5+
Install the saritasa/laravel-healthcheck
package:
$ composer require saritasa/laravel-healthcheck
Configuration
- Publish configuration file:
php artisan vendor:publish --provider="Saritasa\LaravelHealthCheck\HealthCheckServiceProvider"
Configure the necessary checks in file config/health_check.php
'checkers' => [ 'database' => \Saritasa\LaravelHealthCheck\Checkers\DatabaseHealthChecker::class, 'redis' => \Saritasa\LaravelHealthCheck\Checkers\RedisHealthChecker::class, 's3' => \Saritasa\LaravelHealthCheck\Checkers\S3HealthChecker::class, ],
You can add more custom checks - just add a class implementing
\Saritasa\LaravelHealthCheck\Contracts\ServiceHealthChecker
interface with single method check()
that must return instance of \Saritasa\LaravelHealthCheck\Contracts\CheckResult
.
Usage
Package exposes endpoints to run all checks or run each check by name:
GET /health
Runs all known checks and returns HTTP code = 200, if all checks succeeded, 500 otherwise.
Response contains JSON with pares of check name and true/false indicating if checker completed successfully or not.
GET /health/{checker}
Where {checker} is a key from config/health_check.php
, ex. GET /health-check/database
.
Returns HTTP code = 200, if checker reports success, 500 otherwise.
Returns payload, returned by checker. If check result is not successful, adds error message.
GET /liveness, GET /readness
Do nothing, just check availability of PHP application
Available checkers
Saritasa\LaravelHealthCheck\Checkers\DatabaseHealthChecker
Checks, if default connection to DB, configured in Laravel is available - tries to establish connection to server.
Saritasa\LaravelHealthCheck\Checkers\RedisHealthChecker
Checks, if redis connection is available - tries to establish connection to server.
Saritasa\LaravelHealthCheck\Checkers\S3HealthChecker
Checks, if application can read from default S3 bucket - tries to get enumerate entries in S3 bucket.
Saritasa\LaravelHealthCheck\Checkers\NullChecker
Does nothing. Use if you need to check HTTP server availability only.
Contributing
- Create fork, checkout it
- Develop locally as usual. Code must follow PSR-1, PSR-2 -
run PHP_CodeSniffer to ensure, that code follows style guides - Cover added functionality with unit tests and run PHPUnit to make sure, that all tests pass
- Update README.md to describe new or changed functionality
- Add changes description to CHANGES.md file. Use Semantic Versioning convention to determine next version number.
- When ready, create pull request