macpaw / symfony-health-check-bundle
Symfony health check bundle
Installs: 1 092 811
Dependents: 0
Suggesters: 0
Security: 0
Stars: 57
Watchers: 8
Forks: 8
Open Issues: 2
Type:symfony-bundle
pkg:composer/macpaw/symfony-health-check-bundle
Requires
- php: ^8.1
- symfony/framework-bundle: ^6.4 || ^7.4 || ^8.0
Requires (Dev)
- ext-redis: *
- ext-relay: *
- doctrine/mongodb-odm-bundle: ^4.4 || ^5.0
- doctrine/orm: ^2.0 || ^3.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.5
- predis/predis: ^3.3
- squizlabs/php_codesniffer: ^4.0
- symfony/browser-kit: ^6.4 || ^7.4 || ^8.0
- symfony/cache: ^6.4 || ^7.4 || ^8.0
- symfony/yaml: ^6.4 || ^7.4 || ^8.0
Suggests
- ext-mongodb: Required for DoctrineODMCheck - MongoDB driver extension
- ext-redis: Native PHP Redis extension for RedisCheck (alternative to predis)
- ext-relay: High-performance Redis extension for RedisCheck (alternative to ext-redis)
- doctrine/mongodb-odm-bundle: Required for DoctrineODMCheck - MongoDB health monitoring
- doctrine/orm: Required for DoctrineORMCheck - database health monitoring
- predis/predis: Pure PHP Redis client for RedisCheck (alternative to ext-redis)
- symfony/cache: Required for RedisCheck - provides Redis connection factory
This package is auto-updated.
Last update: 2025-12-23 17:12:58 UTC
README
| Version | Build Status | Code Coverage |
|---|---|---|
master |
||
develop |
Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute:
composer require macpaw/symfony-health-check-bundle
Applications that don't use Symfony Flex
enable the bundle by adding it to the list of registered bundles in config/bundles.php
// config/bundles.php <?php return [ SymfonyHealthCheckBundle\SymfonyHealthCheckBundle::class => ['all' => true], // ... ];
Create Symfony Health Check Bundle Config:
Note: XML configuration is no longer supported. Please use YAML or PHP configuration format in your project.
Configurating health check - all available you can see here.
# config/packages/symfony_health_check.yaml` symfony_health_check: health_checks: - id: symfony_health_check.doctrine_orm_check ping_checks: - id: symfony_health_check.status_up_check
To perform redis check you need use provide its dsn in the config:
symfony_health_check: health_checks: ... - id: symfony_health_check.redis_check redis_dsn: 'redis://localhost:6379'
Change response code:
- default response code is 200.
- determine your custom response code in case of some check fails (Response code must be a valid HTTP status code)
symfony_health_check: health_checks: - id: symfony_health_check.doctrine_orm_check ping_checks: - id: symfony_health_check.status_up_check ping_error_response_code: 500 health_error_response_code: 404
Create Symfony Health Check Bundle Routing Config:
config/routes/symfony_health_check.yaml
health_check: resource: '@SymfonyHealthCheckBundle/Resources/config/routes.php'
Step 3: Configuration
Security Optional:
If you are using symfony/security and your health check is to be used anonymously, add a new firewall to the configuration
# config/packages/security.yaml firewalls: healthcheck: pattern: ^/health security: false ping: pattern: ^/ping security: false
Step 4: Additional settings
Add Custom Check:
It is possible to add your custom health check:
<?php declare(strict_types=1); namespace YourProject\Check; use SymfonyHealthCheckBundle\Dto\Response; class CustomCheck implements CheckInterface { public function check(): Response { return new Response('status', true, 'up'); } }
Then we add our custom health check to collection
symfony_health_check: health_checks: - id: symfony_health_check.doctrine_orm_check - id: custom_health_check // custom service check id
How Change Route:
You can change the default behavior with a light configuration, remember to modify the routes.
# config/routes/symfony_health_check.yaml health: path: /your/custom/url methods: GET controller: SymfonyHealthCheckBundle\Controller\HealthController::check ping: path: /your/custom/url methods: GET controller: SymfonyHealthCheckBundle\Controller\PingController::check
How To Use Healthcheck In Docker
HEALTHCHECK --start-period=15s --interval=5s --timeout=3s --retries=3 CMD curl -sS {{your host}}/health || exit 1