cego/service-health-checking

一个包含通用健康检查端点的包,设计时考虑到扩展性

1.1.0 2024-03-15 09:23 UTC

README

此包包含用于Laravel服务HTTP健康检查的核心功能。

使用方法

当包安装后,将暴露一个健康端点 /vendor/service-health-checking。该端点返回 200 OK 以及一个包含以下格式的JSON数据对象的身体

{
    "status": "pass|warn|fail",
    "checks": [
        {
            "status": "pass|warn|fail",
            "name": "HealthCheckClassName",
            "description": "Description defined in the health check class",
            "message": "Message set in the HealthStatus object"
        }
    ]
}

checks 数组包含每个已注册健康检查的条目。

创建健康检查

要为您的服务创建一个健康检查,只需创建一个继承自 \Cego\ServiceHealthChecking\BaseHealthCheck 的类。基础方法有两个抽象方法

  1. check(): HealthStatus 应执行检查并返回一个 HealthStatus 对象。
  2. getDescription(): string 应返回健康检查的描述。

注册健康检查

首先,通过运行以下命令发布包资源

php artisan vendor:publish --provider="Cego\ServiceHealthChecking\ServiceHealthCheckingServiceProvider"

该包将发布一个配置文件 service-health-checking.php,其中必须注册健康检查类,以便它们能够运行。该包附带一个基本的数据库连接检查,默认已注册。