fliglio / health
Fliglio Health
3.0.1
2022-01-14 17:27 UTC
Requires
- php: ^7.4||^8
- psr/log: 1.*
Requires (Dev)
- fliglio/http: 2.1.*
- mockery/mockery: 1.*
- php-amqplib/php-amqplib: 3.*
- phpunit/phpunit: ^8
Suggests
- ext-pdo: For mysql health checks
- fliglio/http: For Fliglio apps only. HTTP reporting.
- php-amqplib/php-amqplib: For RabbitMQ health checks
This package is auto-updated.
Last update: 2024-09-14 23:47:20 UTC
README
fliglio-healthcheck
PHP服务健康检查的可扩展套件,包含满足您健康检查消费者需求的自定义行为。默认的健康检查包括Mysql、Rabbit、Memcache、文件可写性、SSH和HttpResolver。
使用Composer安装
{
"require" : {
"fliglio/health" : "2.1.*"
}
}
示例一,基本的Mysql检查
$manager = new HealthManager(); $manager->addCheck(new MysqlCheck('localhost', 'myuser', 'password')); echo json_encode($manager->process());
如果您的连接信息良好,您应该看到
{"status":"UP", "mysql::localhost;myuser":"UP"}
如果连接不好,无论什么原因,您将得到
{"status":"DOWN", "mysql::localhost;myuser":"DOWN"}
示例二,可选检查
$manager = new HealthManager(); $manager->addCheck(new MysqlCheck('localhost', 'myuser', 'password')) ->addOptionalCheck(new RabbitCheck('localhost', '/', 'myuser', 'password')); echo json_encode($manager->process());
如果可选检查失败,状态将保持“UP”。示例
{"status":"UP", "mysql::localhost;myuser":"UP", "rabbit::localhost;myuser":"WARN"}
行为示例
根据您应用程序的健康检查报告需求,您可以添加行为。
$response = new fliglio\Response(); $manager = new HealthManager(); $manager->addBehavior(new LogFailuresBehavior()) ->addBehavior(new LogWarningsBehavior()) ->addBehavior(new SilentOutputBehavior()) ->addBehavior(new StatusCodeBehavior($response); $manager->addCheck(new MysqlCheck('localhost', 'myuser', 'password')); echo json_encode($manager->process());
如果检查是正常的,您将得到HTTP 200和一个单独的JSON属性。示例
{"status":"UP"}
如果检查失败,您将得到HTTP 500,PHP日志中的消息和一个单独的JSON属性。示例
{"status":"DOWN"}
静默输出 + 记录注意事项
如果您想要记录问题 + 有静默输出,您必须将SilentOutputBehavior放在日志记录器之后 - 否则日志记录器将不知道是否有任何问题。
$manager = new HealthManager(); $manager->addBehavior(new LogIssuesBehavior()) ->addBehavior(new SilentOutputBehavior());
公共AWS ALB行为示例
$response = new fliglio\Response(); $manager = new HealthManager(); $manager->addBehavior(new SilentOutputBehavior()) ->addBehavior(new StatusCodeBehavior($response);
自定义健康检查
您可以添加自己的自定义健康检查,只需实现Fliglio\Health\Api\HealthCheck接口即可。如果您想使健康检查记录日志,除了添加LogFailuresBehavior/LogWarningsBehavior行为外,您还需要实现HealthCheckReport接口。