ekreative / health-check-bundle
A bundle that provides a simple /healthcheck route
Installs: 519 586
Dependents: 0
Suggesters: 0
Security: 0
Stars: 34
Watchers: 4
Forks: 14
Open Issues: 3
Type:symfony-bundle
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
This package is auto-updated.
Last update: 2024-11-06 15:32:07 UTC
README
A bundle that provides a simple /healthcheck
route
Install
Composer
composer require ekreative/health-check-bundle
AppKernel
Include the bundle in your AppKernel
public function registerBundles() { $bundles = [ ... new Ekreative\HealthCheckBundle\EkreativeHealthCheckBundle(),
Routing
ekreative_health_check: resource: '@EkreativeHealthCheckBundle/Resources/config/routes.xml'
Security
You should make sure /healthcheck
does not require authentication
security: firewalls: healthcheck: pattern: ^/healthcheck security: false
Configuration
By default healthcheck will check that your default doctrine connection is working.
Doctrine
To check more than one doctrine connection you should add the configuration, listing the names of the connections
ekreative_health_check: doctrine: - 'default' - 'alternative'
You can also list doctrine connections that should be checked, but don't cause a failure
ekreative_health_check: optional_doctrine: - 'another.optional'
Its possible to disable the doctrine check
ekreative_health_check: doctrine_enabled: false
Timeout
Its recommended to change the default PDO connection timeout so that your health check will fail faster
Add this under connection setting
doctrine: dbal: connections: default: driver: pdo_mysql host: '%database_host%' options: !php/const PDO::ATTR_TIMEOUT: 5
Redis
The bundle can also check that redis connections are working. You should add a list of service names to check
This will require the PHP Redis extension enabled.
ekreative_health_check: redis: - 'redis'
You can also list redis connections that should be checked, but don't cause a failure
ekreative_health_check: optional_redis: - 'redis.optional'
Timeout
Its recommended to change the default Redis connection timeout so that your health
check will fail faster. Its the third argument to connect
call for \Redis
.
services: redis: class: Redis calls: - [ connect, ['%redis_host%', '%redis_port%', 5]]
Redis
When you want redis to be optional, you might want to use the provided RedisFactory
(or your own) that catches any exceptions on connect. Without this a Redis failure will
cause the container to fail, resulting in a 500 error.
services: redis: class: Redis factory: Ekreative\HealthCheckBundle\DependencyInjection\RedisFactory::get arguments: $host: 'example.com'