ekreative / health-check-bundle
一个提供简单/healthcheck路由的包
1.13.0
2024-08-06 10:41 UTC
Requires
- php: >=8.0
- symfony/framework-bundle: ^5.0|^6.0|^7.0
Requires (Dev)
- doctrine/doctrine-bundle: ^2
- friendsofphp/php-cs-fixer: ^3.0
- phpunit/phpunit: ^11
- symfony/browser-kit: ^5.0|^6.0|^7.0
- symfony/monolog-bundle: ^3.0|^4.0
- symfony/phpunit-bridge: ^5.0|^6.0|^7.0
- symfony/yaml: ^5.0|^6.0|^7.0
Suggests
- ext-redis: To use the Redis health check
README
一个提供简单/healthcheck
路由的包
安装
Composer
composer require ekreative/health-check-bundle
AppKernel
在您的AppKernel中包含此包
public function registerBundles() { $bundles = [ ... new Ekreative\HealthCheckBundle\EkreativeHealthCheckBundle(),
路由
ekreative_health_check: resource: '@EkreativeHealthCheckBundle/Resources/config/routes.xml'
安全性
您应该确保/healthcheck
不需要认证
security: firewalls: healthcheck: pattern: ^/healthcheck security: false
配置
默认情况下,healthcheck将检查您的默认doctrine连接是否正常工作。
Doctrine
要检查多个doctrine连接,您应添加配置,列出连接的名称。
ekreative_health_check: doctrine: - 'default' - 'alternative'
您还可以列出应检查但不导致失败的doctrine连接。
ekreative_health_check: optional_doctrine: - 'another.optional'
可以禁用doctrine检查。
ekreative_health_check: doctrine_enabled: false
超时
建议更改默认PDO连接超时,以便您的健康检查可以更快失败。
在连接设置下添加此内容
doctrine: dbal: connections: default: driver: pdo_mysql host: '%database_host%' options: !php/const PDO::ATTR_TIMEOUT: 5
Redis
此包还可以检查redis连接是否正常工作。您应该添加要检查的服务名称列表。
这需要启用PHP Redis扩展。
ekreative_health_check: redis: - 'redis'
您还可以列出应检查但不导致失败的redis连接。
ekreative_health_check: optional_redis: - 'redis.optional'
超时
建议更改默认Redis连接超时,以便您的健康检查可以更快失败。这是\Redis
的connect
调用的第三个参数。
services: redis: class: Redis calls: - [ connect, ['%redis_host%', '%redis_port%', 5]]
Redis
当您希望redis是可选的,您可能希望使用提供的RedisFactory
(或您自己的),该工厂在连接时捕获任何异常。如果没有这个,Redis失败将导致容器失败,导致500错误。
services: redis: class: Redis factory: Ekreative\HealthCheckBundle\DependencyInjection\RedisFactory::get arguments: $host: 'example.com'