Version | Build Status | Code Coverage |
---|---|---|
master |
||
develop |
Open a command console, enter your project directory and execute:
$ composer require macpaw/symfony-health-check-bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require macpaw/symfony-health-check-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
SymfonyHealthCheckBundle\SymfonyHealthCheckBundle::class => ['all' => true],
);
// ...
}
// ...
}
config/packages/symfony_health_check.yaml
Configurating health check - all available you can see here.
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'
config/packages/security.yaml
If you are using symfony/security and your health check is to be used anonymously, add a new firewall to the configuration
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 return to Step 3 after that:
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