letsgoi / laravel-health-check

Laravel 健康检查器

3.0.0 2024-07-10 09:36 UTC

This package is auto-updated.

Last update: 2024-09-10 09:59:16 UTC


README

基于定义的检查器执行健康检查分析的包。

需求

  • PHP >= 8.3
  • Laravel >= 10.0

安装

  • 使用 Composer 安装包
composer require letsgoi/laravel-health-check
  • 发布配置
php artisan vendor:publish --provider="Letsgoi\HealthCheck\HealthCheckServiceProvider" --tag="config"

服务提供器将被自动注册,但是如果您想手动添加,必须在您的 config/app.php 文件中添加以下内容

'providers' => [
    // ...
    Letsgoi\HealthCheck\HealthCheckServiceProvider::class,
];

配置

您必须在配置文件(config/laravel_health_check.php)中设置所有想要在检查中通过的检查器数组

'checkers' => [
    ...
    Letsgoi\HealthCheck\Checkers\DatabaseConnectionChecker::class,
    Letsgoi\HealthCheck\Checkers\WritablePathsChecker::class,
    ...
],

您可以选择检查任何检查器而不检查所有,但此配置适用于一般检查。

用法

检查单个检查器

使用 HealthCheck 门面检查单个检查器

use Letsgoi\HealthCheck\Facades;

HealthCheck::check(new Checker());

如果检查通过,它将返回 true,如果不通过,则抛出 HealthCheckerException

检查配置文件中定义的所有检查器

要检查配置文件中定义的所有检查器,请使用 HealthCheck 门面的 healthCheck 方法

use Letsgoi\HealthCheck\Facades;

HealthCheck::healthCheck();

如果所有检查都通过,它将返回 true,如果不通过,则抛出包含失败检查器的 HealthCheckerException

获取检查错误

如果您想获取配置文件中定义的所有检查器的所有检查错误,可以使用 getCheckErrors 方法

use Letsgoi\HealthCheck\Facades;

HealthCheck::getCheckErrors();

它返回包含所有错误的数组。

HealthCheck 命令

您可以使用 artisan 命令运行健康检查

php artisan health-check

如果所有检查都通过,它将显示“ok”,如果不通过,则显示异常。

HealthCheck 端点

您可以在配置文件(laravel_health_check)中配置一个端点来检查您应用程序的健康状况

...

'endpoint' => [
    'enabled' => env('HEALTH_CHECK_ENDPOINT_ENABLED', true), // Enable/disable endpoint

    'path' => env('HEALTH_CHECK_ENDPOINT_PATH', '/health-check'), // Configure path of endpoint

    'healthy_message' => env('HEALTH_CHECK_ENDPOINT_HEALTHY_MESSAGE', 'Healthy'), // Set ok message
],

...

如果所有检查都通过,它将返回“ok”消息,如果不通过,则返回包含错误的服务器错误。

检查器

可用检查器

以下是可用的预定义检查器

  • Letsgoi\HealthCheck\Checkers\AppKeyChecker:检查是否已定义应用程序密钥为环境变量。
  • Letsgoi\HealthCheck\Checkers\DatabaseConnectionChecker:检查应用程序是否可以连接到默认数据库连接。
  • Letsgoi\HealthCheck\Checkers\DatabaseMigrationsChecker:检查是否所有迁移都更新到最新状态。
  • Letsgoi\HealthCheck\Checkers\DebugChecker:检查应用程序是否不在调试模式下。
  • Letsgoi\HealthCheck\Checkers\EnvFileChecker:检查是否存在 .env 文件。
  • Letsgoi\HealthCheck\Checkers\WritablePathsChecker:检查必要的路径是否可写。

自定义检查器

如果您需要一些自定义检查器(或尚未提供的某些内容,欢迎 PR :)),您可以简单地实现 Letsgoi\HealthCheck\Contracts\HealthChecker 协议。

它强制实现一个返回 true(检查通过)或 false(检查未通过)的 check 方法。

然后您可以通过将其添加到配置文件或以单独模式进行检查来正常使用它。

测试

运行测试

composer test

贡献

欢迎拉取请求。对于重大更改,请先创建一个问题来讨论您想要更改的内容。

请确保根据需要更新测试。

许可证

MIT