Version | Build Status | Code Coverage |
---|---|---|
master |
||
develop |
Open a command console, enter your project directory and execute:
composer require macpaw/symfony-health-check-bundle
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],
// ...
];
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
config/routes/symfony_health_check.yaml
health_check:
resource: '@SymfonyHealthCheckBundle/Resources/config/routes.xml'
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
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
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
HEALTHCHECK --start-period=15s --interval=5s --timeout=3s --retries=3 CMD curl -sS {{your host}}/health || exit 1