fliglio/health

Fliglio Health

3.0.1 2022-01-14 17:27 UTC

README

Build Status Latest Stable Version

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接口。