saritasa/laravel-healthcheck

项目健康检查包

2.2.0 2024-05-28 12:14 UTC

This package is auto-updated.

Last update: 2024-08-28 12:54:02 UTC


README

Build Status CodeCov Release PHPv Downloads

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 服务器的可用性,则使用它。

贡献

  1. 创建分支,检出它
  2. 像往常一样本地开发。 代码必须遵循 PSR-1PSR-2 -
    运行 PHP_CodeSniffer 以确保代码遵循风格指南
  3. 使用单元测试添加功能覆盖率 并运行 PHPUnit 以确保所有测试通过
  4. 更新 README.md 以描述新功能或更改的功能
  5. 将更改描述添加到 CHANGES.md 文件。使用 语义版本控制 约定来确定下一个版本号。
  6. 准备好后,创建拉取请求