macpaw / symfony-health-check-bundle
Symfony health check bundle
Installs: 610 805
Dependents: 0
Suggesters: 0
Security: 0
Stars: 47
Watchers: 9
Forks: 6
Open Issues: 3
Type:symfony-bundle
Requires
- php: >=7.4
- symfony/framework-bundle: ^3.4 || ^4.1.12 || ^5.0 || ^6.0 || ^7.0
Requires (Dev)
- ext-json: *
- phpstan/phpstan: 1.9.*
- phpunit/phpunit: ^8.5 || ^9.0
- squizlabs/php_codesniffer: 3.7.*
- symfony/browser-kit: ^3.4 || ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/phpunit-bridge: ^3.4 || ^4.1.12 || ^5.0 || ^6.0 || ^7.0
- symfony/yaml: ^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0
README
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:
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_check ping_checks: - id: symfony_health_check.status_up_check
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_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.xml'
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_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