redwebcreation / laravel-healthful
检查您的应用程序是否健康。
1.0.0
2021-08-17 05:29 UTC
Requires
- php: ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v3.0.0
- orchestra/testbench: ^v6.17.1
- pestphp/pest: ^v0.3.19
- phpstan/phpstan: ^0.12.88
- symfony/var-dumper: ^5.2.0
This package is auto-updated.
Last update: 2024-09-17 11:43:03 UTC
README
此包旨在与Docker的HEALTHCHECK
指令一起使用,并相应地设计。
安装
需要PHP 8.0+
您可以通过composer安装此包
composer require redwebcreation/laravel-healthful
该包将自动注册自己。
您需要发布迁移
php artisan vendor:publish --tag="healthful-migrations"
可选地,您可以发布配置文件
php artisan vendor:publish --tag="healthful-config"
这是已发布配置文件的内容
<?php use RWC\Healthful\Checks\DatabaseCheck; use RWC\Healthful\Checks\QueueCheck; use RWC\Healthful\Checks\SchedulerCheck; return [ /* The route that should return the health status */ 'route' => '/_/health', /* A list of checks to be performed. */ 'checks' => [ DatabaseCheck::class, ] ];
用法
检查您的应用程序是否健康
use RWC\Healthful\Facades\Health; Health::check();
如果所有检查都为真,则返回true;如果其中一个失败,则返回false。
您可能希望公开您的应用程序的健康状态
use RWC\Healthful\Facades\Health; Health::route()->name('healthcheck');
它会在/_/health
处注册一个路由,如果所有检查都通过,则返回200,如果其中之一未通过,则返回503。
自定义检查
// app/HealthChecks/IsMondayCheck.php use RWC\Healthful\Checks\Check; class IsMondayCheck implements Check { public function passes() : bool{ // Monday is never healthful. return !now()->isMonday(); } }
// config/healthful.php return [ 'checks' => [ // ... IsMondayCheck::class ] ];
您还可以使用Heartbeat
模型
use RWC\Healthful\Models\Heartbeat; $heartbeat = Heartbeat::firstOrNew([ 'type' => 100 // any number above 100 ]); $heartbeat->updateTimestamps(); $heartbeat->save();
您需要指定一个大于100的type
,以确保本包提供的其他类型的心跳永远不会与您的冲突。
然后,在您的检查中:
use RWC\Healthful\Checks\Check; use RWC\Healthful\Models\Heartbeat; class MyCheck implements Check { public function passes(): bool { $heartbeat = Heartbeat::query() ->where('type', 100) ->where('updated_at', '>=', now()->subMinutes(5)) ->first(); return $heartbeat !== null; } }
Docker集成
# Dockerfile HEALTHCHECK --interval=1m --timeout=30s --retries=3 CMD curl --fail http://localhost/_/health || exit 1
测试
composer test
Laravel的Healthful由Félix Dorn创建,遵循MIT许可证。