amazeeio / healthz-php
Requires
- guzzlehttp/psr7: ^1.0
- nyholm/psr7: ^1.3
- nyholm/psr7-server: ^1.0
- predis/predis: ^1.0
- solarium/solarium: ^5.2
- tightenco/collect: ^7.0
- zendframework/zend-httphandlerrunner: ^1.0
Requires (Dev)
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-21 23:53:07 UTC
README
这是一个简单的PHP应用程序,用于确定在Lagoon上托管站点的整体健康状况。
目前,它依赖于Lagoon约定来确定哪些服务可用,然后检查这些服务是否运行。
配置
此脚本应位于与应用程序分开的目录中。例如,惯例是将Web应用程序存储在/app
中 - 您可以将Healthz-php存储在/healthz
中。
location /lagoonhealthz {
root /lagoonhealthz;
rewrite ^/lagoonhealthz$ /lagoonhealthz/index.php;
location ~* \.php(/|$) {
include /etc/nginx/fastcgi.conf;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME /lagoonhealthz/index.php;
fastcgi_pass ${NGINX_FASTCGI_PASS:-php}:9000;
}
}
将其添加到您的nginx配置中,将重定向所有传入的/healthz
流量到我们当前的脚本。
设置失败响应代码
默认情况下,我们返回http 500响应代码以表示任何失败的检查。这对于涉及错误负缓存的设置可能是一个潜在问题。
如果您希望系统返回除500以外的其他内容,您可以使用环境变量HEALTHZ_PHP_HTTP_FAIL_CODE
设置返回代码。
扩展检查
可以通过实现AmazeeIO\Health\Check\CheckInterface
来创建检查,它主要做两件事。
首先,它检查检查是否适用于当前环境。例如,为了知道是否应该检查Solr服务的状态,CheckSolr
类将首先检查环境变量SOLR_PORT
是否可用。如果任何特定的检查调用CheckInterface::appliesInEnvironment
返回true
,则该检查将被注册以运行。
其次,所有适用的检查都必须返回一个result
和一个status
。返回的状态是STATUS_PASS
、STATUS_FAIL
和STATUS_WARN
之一 - 这三种状态实际上决定了测试服务的健康状态。它们用于确定整个系统的健康状况。
检查的整体状态由最适用的检查的最负结果决定。也就是说,如果任何检查返回STATUS_FAIL
,则整个检查被认为是失败的。如果任何检查返回STATUS_WARN
,则整个系统检查被认为是警告状态。
创建您的检查后,请将它们注册在checks.conf.php
文件中。