vistik/health-checks

在 Laravel 应用中执行健康检查

v0.0.7 2017-12-08 21:05 UTC

README

Build Status

使用此包将健康检查添加到您的 Laravel 应用程序中。

示例

All passed DB failed Queue failed Url stats

安装

首先,使用 Composer 安装此包。

$ composer require phpsafari/health-checks

安装完包后,请将 ``PhpSafari\ServiceProvider\HealthCheckServiceProvider::class 添加到您的 config/app.php` 文件中。

完成此操作后,您可以通过运行以下命令将 health.php 配置文件发布到您的 config 文件夹:

$ php artisan vendor:publish --tag=health

使用方法

config/health.php 文件中配置所有可用的健康检查。默认情况下,此包已经包含了一些检查

  • CorrectEnvironment 将检查您的应用程序环境是否设置为 production
  • DatabaseOnline 将检查您的数据库连接
  • DatabaseUpToDate 将检查您的应用程序是否有尚未迁移的迁移
  • DebugModeOff 将检查是否关闭了调试模式
  • QueueProcessing 将检查队列是否正在运行并且作业正在处理
  • PathIsWritable 将检查提供的路径是否可写
  • LogLevel 将检查日志级别是否设置为给定值
  • MaxRatioOf500Responses 将检查 500 响应的比率是否高于给定阈值(最后 60 分钟)
  • MaxResponseTimeAvg 将检查所有请求的平均响应时间是否高于给定阈值(最后 60 分钟)

要运行应用程序的健康检查,请运行

$ php artisan health:check

您还可以使用 Laravel 的调度器来安排您的健康检查

$schedule->command('health:check')->hourly();

基于 URL 的健康检查

您还可以通过在浏览器中或使用 Pingdom 等工具中敲击 https://<APP_URL>/_health URL 来运行健康检查。

注意:_此功能可以在 config/health.php 文件中禁用,通过将 route.enabled 设置为 false

您可以通过访问 https://<APP_URL>/_health/stats 来查看所有统计数据,包括平均响应时间

创建您自己的健康检查

为了创建您自己的健康检查,您只需扩展 PhpSafari\Checks\HealthCheck 类并实现 run() 方法。

示例

class IsFriday extends PhpSafari\Checks\HealthCheck
{
    public function run(): bool
    {
        return Carbon::now()->isFriday();
    }
}

然后将 new IsFriday() 添加到 config/health.php 中的检查列表中。

测试

$ phpunit tests/

安全性

如果您发现任何与安全相关的问题,请通过电子邮件 :author_email 而不是使用问题跟踪器来联系。

鸣谢

许可协议

MIT 许可证(MIT)。有关更多信息,请参阅许可文件