saritasa / laravel-healthcheck
项目健康检查包
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
README
Laravel项目的自检包。实现基本检查(例如,应用程序是否可以连接到数据库服务器)并允许扩展(例如,实现自定义检查)
Laravel 5.5+
安装 saritasa/laravel-healthcheck
包
$ composer require saritasa/laravel-healthcheck
配置
- 发布配置文件
php artisan vendor:publish --provider="Saritasa\LaravelHealthCheck\HealthCheckServiceProvider"
在文件 config/health_check.php
中配置必要的检查
'checkers' => [ 'database' => \Saritasa\LaravelHealthCheck\Checkers\DatabaseHealthChecker::class, 'redis' => \Saritasa\LaravelHealthCheck\Checkers\RedisHealthChecker::class, 's3' => \Saritasa\LaravelHealthCheck\Checkers\S3HealthChecker::class, ],
您可以添加更多自定义检查 - 只需添加一个实现 \Saritasa\LaravelHealthCheck\Contracts\ServiceHealthChecker
接口并具有单个方法 check()
的类的实例,该方法必须返回 \Saritasa\LaravelHealthCheck\Contracts\CheckResult
实例。
Laravel Lumen 8.0+
安装 saritasa/laravel-healthcheck
包
$ composer require saritasa/laravel-healthcheck
创建一个新的文件 config\health_check.php
<?php use Saritasa\LaravelHealthCheck\Checkers\DatabaseHealthChecker; use Saritasa\LaravelHealthCheck\Checkers\RedisHealthChecker; use Saritasa\LaravelHealthCheck\Checkers\S3HealthChecker; return [ 'checkers' => [ 'database' => DatabaseHealthChecker::class, 'redis' => RedisHealthChecker::class, 's3' => S3HealthChecker::class, ], ];
在文件 bootstrap\app.php
中添加服务提供者
$app->configure('health_check'); $app->instance('path.config', app()->basePath() . DIRECTORY_SEPARATOR . 'config'); $app->register(Saritasa\LaravelHealthCheck\HealthCheckServiceProvider::class);
用法
包公开端点以运行所有检查或按名称运行每个检查
GET /health
运行所有已知检查并返回 HTTP 状态码 = 200,如果所有检查都成功,否则返回 500。
响应包含包含检查名称和布尔值的 JSON,指示检查器是否成功完成。
GET /health/{checker}
其中 {checker} 是来自 config/health_check.php
的密钥,例如 GET /health-check/database
。
如果检查器报告成功,则返回 HTTP 状态码 = 200,否则返回 500。
返回检查器返回的有效负载。如果检查结果不成功,则添加错误消息。
GET /liveness, GET /readness
不执行任何操作,仅检查 PHP应用程序的可用性
可用的检查器
Saritasa\LaravelHealthCheck\Checkers\DatabaseHealthChecker
检查默认数据库连接(在 Laravel 中配置)是否可用 - 尝试连接到服务器。
Saritasa\LaravelHealthCheck\Checkers\RedisHealthChecker
检查 Redis 连接是否可用 - 尝试连接到服务器。
Saritasa\LaravelHealthCheck\Checkers\S3HealthChecker
检查应用程序是否可以读取默认的 S3 存储桶 - 尝试获取 S3 存储桶中的条目。
Saritasa\LaravelHealthCheck\Checkers\NullChecker
不执行任何操作。如果只需要检查 HTTP 服务器的可用性,则使用它。
贡献
- 创建分支,检出它
- 像往常一样本地开发。 代码必须遵循 PSR-1、PSR-2 -
运行 PHP_CodeSniffer 以确保代码遵循风格指南 - 使用单元测试添加功能覆盖率 并运行 PHPUnit 以确保所有测试通过
- 更新 README.md 以描述新功能或更改的功能
- 将更改描述添加到 CHANGES.md 文件。使用 语义版本控制 约定来确定下一个版本号。
- 准备好后,创建拉取请求