renoki-co /laravel-healthchecks
Laravel Healthchecks 是一个简单的控制器类,帮助您无问题地构建自己的健康检查端点。
2.1.0
2022-02-09 22:05 UTC
Requires
- illuminate/routing: ^8.83|^9.0.1
- illuminate/support: ^8.83|^9.0.1
Requires (Dev)
- laravel/legacy-factories: ^1.3
- mockery/mockery: ^1.5
- orchestra/testbench: ^6.28|^7.0
- orchestra/testbench-core: ^6.28|^7.0
- phpunit/phpunit: ^9.5.13
This package is auto-updated.
Last update: 2024-09-08 06:21:23 UTC
README
Laravel Healthchecks 是一个简单的控制器类,帮助您无问题地构建自己的健康检查端点。
🤝 支持
如果您在生产应用、演示、爱好项目、学校项目等中使用 Renoki Co. 的一个或多个开源包,请通过 GitHub Sponsors 赞助我们的工作。 📦
🚀 安装
您可以通过 composer 安装此包。
composer require renoki-co/laravel-healthchecks
🙌 使用
首先,您应该创建自己的 Controller 用于健康检查,该控制器扩展 RenokiCo\LaravelHealthchecks\Http\Controllers\HealthcheckController
。
use Illuminate\Http\Request; use RenokiCo\LaravelHealthchecks\Http\Controllers\HealthcheckController; class MyHealthcheckController extends HealthcheckController { /** * Register the healthchecks. * * @param \Illuminate\Http\Request $request * @return void */ public function registerHealthchecks(Request $request) { $this->addHealthcheck('mysql', function (Request $request) { // Try testing the MySQL connection here // and return true/false for pass/fail. return true; }); } }
// In your routes Route::get('/healthcheck', [MyHealthcheckController::class, 'handle']);
注册健康检查
在控制器中,您应该在 registerHealthchecks
方法中注册健康检查的闭包,如上面的示例所示。
您可以添加任意数量的健康检查。
public function registerHealthchecks(Request $request) { $this->addHealthcheck('mysql', function (Request $request) { // }); $this->addHealthcheck('redis', function (Request $request) { // }); $this->addHealthcheck('some_check', function (Request $request) { // }); $this->addHealthcheck('another_check_here', function (Request $request) { // }); }
状态码
如果失败,响应是 500
。对于所有成功的响应,状态码是 200
。
要更改发送的 http 状态码,请在 registerHealthchecks
方法中指定此设置
public function registerHealthchecks(Request $request) { $this->setPassingHttpCode(203); $this->setFailingHttpCode(403); $this->addHealthcheck('mysql', function (Request $request) { return true; }); }
输出
默认情况下,输出将是 OK
或 FAIL
字符串,但如果您想调试健康检查,您可以得到一个包含每个已注册的健康检查及其通过/失败闭包的 JSON。
只需调用 withOutput()
public function registerHealthchecks(Request $request) { $this->withOutput(); $this->addHealthcheck('mysql', function (Request $request) { return true; }); $this->addHealthcheck('redis', function (Request $request) { return false; }); }
浏览器中的输出将如下所示
{ "mysql": true, "redis": false }
🐛 测试
vendor/bin/phpunit
🤝 贡献
有关详细信息,请参阅 CONTRIBUTING。
🔒 安全性
如果您发现任何安全问题,请通过电子邮件 alex@renoki.org 而不是使用问题跟踪器。