coreproc/laravel-healthcheck

0.5.1 2024-09-17 04:43 UTC

This package is auto-updated.

Last update: 2024-09-17 04:43:46 UTC


README

此软件包为您的Laravel应用程序提供了一个简单的健康检查端点。

Import Action

安装

您可以通过Composer安装此软件包

composer require coreproc/laravel-healthcheck

发布配置文件

php artisan vendor:publish --provider="Coreproc\LaravelHealthcheck\HealthcheckServiceProvider"

使用方法

安装后,您可以通过访问/healthcheck端点来检查健康状态。

您可以在config/healthcheck.php文件中配置路径,并指定您想要检查的服务。

// config/healthcheck.php
return [

    'path' => 'healthcheck',

    'database' => true,

    'redis' => true,

    'horizon' => true,

    'scheduler' => false,

];

定时任务/调度器

如果您想检查调度器是否运行,请在app/Console/Kernel.php中的调度器中添加以下内容

$schedule->call(function () {
    Cache::put('scheduler_last_run', now());
})->everyMinute();

这将每分钟更新缓存键scheduler_last_run。健康检查将检查此键是否在过去2分钟内被更新。

Cloudwatch日志记录

如果存在不可用的服务,健康检查将记录检查状态。日志将包含服务的状态和通过日志的context的消息。

JSON示例日志

{
    "origin": "app.web",
    "message": "Scheduler is not running.",
    "context": {
        "is_scheduler_running": false,
        "last_run": "2024-03-25 05:26:01",
        "include_in_metrics": false
    },
    "level": 400,
    "level_name": "ERROR",
    "channel": "local",
    "extra": {}
}

以下为健康检查日志的可能上下文

  • is_database_connected - 如果数据库已连接,则为布尔值。
  • is_redis_connected - 如果redis已连接,则为布尔值。
  • is_horizon_running - 如果horizon正在运行,则为布尔值。
  • is_scheduler_running - 如果调度器正在运行,则为布尔值。