tiacx/laravel-health-plus

Laravel-Health-Plus

Maintainers

Package info

github.com/Tiacx/laravel-health-plus

Homepage

pkg:composer/tiacx/laravel-health-plus

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-06-18 07:00 UTC

This package is auto-updated.

Last update: 2026-06-18 07:07:27 UTC


README

说明

spatie/laravel-health 的增强扩展包,为你的 Laravel 应用提供额外的健康检查与通知功能。

安装

composer require tiacx/laravel-health-plus

配置

发布配置文件:

php artisan vendor:publish --tag=health-plus-config

该命令会发布 config/health.php 配置文件。

配置检查项:

发布配置后,修改 config/health.php 中的 checks 数组来启用或配置你需要的检查项。

// config/health.php
'checks' => [
    DatabaseCheck::new(),
    RedisCheck::new(),
    UsedDiskSpaceCheck::new()
        ->warnWhenUsedSpaceIsAbovePercentage(85)
        ->failWhenUsedSpaceIsAbovePercentage(95),
    DatabaseConnectionCountCheck::new()
        ->warnWhenMoreConnectionsThan(2000)
        ->failWhenMoreConnectionsThan(5000),
    CpuLoadCheck::new()
        ->warnWhenLoadIsIncreasing(3.0) // 系统负载剧增超过3倍
        ->topProcessesLimit(5), // Top5 进程
    RequestCheck::new()
        ->warnWhenRpsIsIncreases(3) // 每秒请求数剧增超过3倍
        ->warnWhenDurationIsIncreases(10), // 请求响应时间剧增超过10倍
    PhpFpmCheck::new()
        ->statusUrl('http://localhost/fpm-status')
        ->warnWhenActiveProcessesIsAbovePercentOfMaxChildren(80)
        ->failWhenActiveProcessesIsAbovePercentOfMaxChildren(95)
        ->warnWhenListenQueueIsAbove(5)
        ->failWhenListenQueueIsAbove(10)
        ->warnWhenSlowRequestsIsAbove(5)
        ->failWhenSlowRequestsIsAbove(10),
    LogCheck::new()
        ->failWhenErrorLogsAbove(0) // 有错误日志
        ->warnWhenWarningLogsIsAbove(100) // 警告日志超过100条
        ->everyFifteenMinutes(), // 15分钟一次
],

配置通知:

发布配置后,修改 config/health.php 中的 notifications 数组来启用或配置你需要的通知方式,默认使用 webhook 通知

'notifications' => [
    'enabled' => true,
    'notifications' => [
        HealthCheckNotification::class => ['webhook'],
    ],
    'notifiable' => HealthCheckNotifiable::class,
    'webhook' => [
        'url' => env('HEALTH_NOTIFICATION_WEBHOOK_URL', ''),
    ],
],

注:通过 HEALTH_NOTIFICATION_WEBHOOK_URL 环境变量来配置 Webhook URL。

其他可用 Check 类:

https://spatie.be/docs/laravel-health/v1/available-checks/overview

迁移

php artisan vendor:publish --tag="health-migrations"
php artisan migrate

使用

手动运行健康检查:

php artisan health:check

定时运行健康检查:

app/Console/Kernel.php 中添加以下代码:

$schedule->command(RunHealthChecksCommand::class)->everyMinute();

或者在 routes/console.php 中添加以下代码:

Schedule::command(RunHealthChecksCommand::class)->everyMinute();

更多说明

请参考 spatie/laravel-health 官方文档