Download the PHP package oro/health-check-bundle without Composer
On this page you can find all versions of the php package oro/health-check-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download oro/health-check-bundle
More information about oro/health-check-bundle
Files in oro/health-check-bundle
Package health-check-bundle
Short Description Oro Health Check Bundle
License OSL-3.0
Homepage https://github.com/oroinc/OroHealthCheckBundle.git
Informations about the package health-check-bundle
OroHealthCheckBundle
OroHealthCheckBundle implements a set of health checks for applications built on OroPlatform. Based on the Liip Monitor Bundle, it provides a way to perform the checks using the same configuration and environment that the application uses.
Table of Contents
- Purpose
- Basic usage
- HealthCheck under Maintenance mode
- Built in checks
- Build your own check
- Links
Purpose
With OroHealthCheckBundle, you can learn about the environment and configuration health check results via the web UI, API and CLI. It helps you to ensure that the application environment is configured correctly, the external services integrated with the application are alive and accessible from the application.
It checks the following:
- Database server connection
- Elasticsearch server connection
- FileStorage state
- Mail Transport connection
- RabbitMQ server connection
- Redis server connection
- WebSocket server connection
- Maintenance Mode state
Basic usage
You can use the health check via:
-
CLI. There are 2 available commands
-
the
bin/console monitor:list --env=prod
command provides a list of configured checks - the
bin/console monitor:health --env=prod
command performs health checks
-
If all health checks were successful, the bin/console monitor:health --env=prod
command returns the 0 code. If at
least one check has failed, the 1 code is returned.
- Web Interface. All configured checks and REST API documentation are available on the page with
/healthcheck
path - HTTP Status endpoint. Pages that send only HTTP status in response
/healthcheck/http_status_checks
can be used to get status after all available checks are executed/healthcheck/http_status_check/<some_check_id>
can be used to get status of a specific check (usebin/console monitor:list --env=prod
to get check identifiers)
- REST API. Docs are available on the page with
/healthcheck
path
Note: For an OroCommerce application, make sure that the %web_backend_prefix%
parameter is used before health check
urls. This parameter has /admin
value by default. For example:
/admin/healthcheck
/admin/healthcheck/http_status_check/<some_check_id>
/admin/healthcheck/http_status_checks
HealthCheck under Maintenance mode
Keep in mind that you will NOT be able to use any http request to your web server if it has the configured maintenance page. In this case, you can use only CLI commands illustrated in the Basic usage section.
When using healthcheck, you typically receive either the 200 or 502 http status codes. However, if you have any of the configurations listed below, you receive the 503 http status code.
For the Apache web server (in the .htaccess
file)
For the Nginx web server (in the host configuration)
Built-in checks
Database server connection
Verifies the connection to the database via the application config.
Elasticsearch server connection
Verifies if Elasticsearch server is accessible and may be connected via the application functionality.
FileStorage state
Verifies if specific directories are accessible for writing:
- cache
- logs
- data
- media
Mail Transport connection
Verifies if the mail transport is configured correctly and is accessible.
RabbitMQ server connection
Verifies the connection to the RabbitMQ server via the application config.
Redis server connection
Verifies the connection to the Redis server via the application config.
WebSocket server connection
Verifies if the service is configured correctly and is running.
Maintenance Mode state
With OroHealthCheckBundle, the maintenance mode undergoes the following changes:
Health checks in the maintenance mode
The bundle configuration keeps the /healthcheck/http_status_checks
path whitelisted as the endpoint for the API calls.
If all health checks were successful, the /healthcheck/http_status_checks
request returns the 200 response code. If at
least one check has failed, the 502 response code is returned. The /healthcheck/http_status_check/<some_check_id>
path
is used for an individual check, with the same response codes.
- The
Oro\Bundle\MaintenanceBundle\Drivers\FileDriver
class is used as maintenance driver.
The following example illustrates the configuration which can be used in config.yml to change the behavior of the maintenance mode:
Build your own check
Each health check class must implement the Laminas\Diagnostics\Check\CheckInterface
interface.
This class must be defined as a Symfony service and tagged as liip_monitor.check
in order to be picked up
by the health check runner.
Alternatively, if you need to run various checks inside one service, implement the Laminas\Diagnostics\Check\CheckCollectionInterface
interface.
The getChecks()
method of this interface returns an array of checks that need to be executed.
Then, tag it as a liip_monitor.check_collection
.