Oh Dear Health Monitoring
vendic/magento2-oh-dear-checks
Adds application health monitoring via Oh Dear, shipping with built-in checks for disk space, CPU load, database connections and PHP-FPM, plus a framework for writing custom checks.
Supported Magento versions: 2.4.9
9,866 installs★ 8 starsLatest: v1.10.3Released 2026-09-10License: MIT
composer require vendic/magento2-oh-dear-checksREADME
Reproduced from the package’s own README, under its own license, as of 2026-09-13. Links and images point back at the source repository.
This module adds Application health monitoring using Oh Dear to Magento 2. It allows you to easily write your own custom checks. Additionally, it ships with a number of checks out of the box.
composer require vendic/magento2-oh-dear-checks
Some checks have an optional configuration. You can configure these checks in the env.php. Example:
'ohdear' => [ \Vendic\OhDear\Checks\Diskspace::class => [ 'max_percentage_used' => '86' ], \Vendic\OhDear\Checks\CpuLoad::class => [ 'max_load_last_minute' => 10, 'max_load_last_five_minutes' => 8, 'max_load_last_fifteen_minutes' => 6 ], \Vendic\OhDear\Checks\DatabaseConnectionCount::class => [ 'failed_treshold' => 100, 'warning_treshold' => 80 ], \Vendic\OhDear\Checks\PhpFpmCount::class => [ 'failed_treshold' => 100, 'warning_treshold' => 80 ], ]
To disable any check, add an entry to your env.php with the check class name and set enabled to false:
'ohdear' => [ 'Vendic\\OhDear\\Checks\\CpuLoad' => [ 'enabled' => false ], 'Vendic\\OhDear\\Checks\\Diskspace' => [ 'enabled' => false ], 'Vendic\\OhDear\\Checks\\TwoFactorAuthentication' => [ 'enabled' => false ] ],
TODO
Oh Dear monitors one domain per site, but a single Magento instance often serves many store views on
different domains. The store_fronts check reports on the availability of all those child store domains:
- An hourly cron (
vendic_ohdear_check_store_fronts) collects the link URL of every active store view and requests them in parallel with a 10 second timeout, following up to 5 redirects. The link URL respects a store's custom base URL when configured and includes the store code path when "add store code to URLs" is enabled (e.g.https://ivol.test/deurmat24_nl/), so it matches the URLs Magento itself generates. URLs are deduplicated and the default store view is excluded, since Oh Dear already monitors that domain directly. - A store front counts as reachable only when the request ends in an HTTP 200.
- Only failing URLs are stored and reported. When one or more store fronts are down the check fails and
the failed URLs (with their HTTP status or connection error) are attached as meta under
failed_urls. - The check reports OK when the cron has not produced results yet (e.g. right after a deploy) or when there are no children store fronts to check, and warns when the cached results are older than 2 hours, so a broken cron does not go unnoticed.
Disable it like any other check via env.php:
'ohdear' => [ \Vendic\OhDear\Checks\StoreFronts::class => [ 'enabled' => false ], ]
Disabling the check also stops the cron from making any requests.
- Create a new class that implements
Vendic\OhDear\Interfaces\CheckInterface, place it in 'Checks'. This class will contain the main logic of your check. - Add your new class to the 'checks' argument of
Vendic\OhDear\Api\CheckListInterface
<type name="Vendic\OhDear\Api\CheckListInterface"> <arguments> <argument name="checks" xsi:type="array"> ... <item name="your_new_check" xsi:type="object">Vendic\OhDear\Checks\YourNewCheck</item> ... </argument> </arguments> </type>
- Preferabbly add a test for your check. See
Vendic\OhDear\Test\Integration\Checks\for examples. - Test your output on: https://magento2.test/oh-dear-health-application-check-results. Your GET request should include the header
oh-dear-health-check-secret. The header value should match the Magento config value ofohdear/health_check/secret. If you don't have this header, you will get a 'No health secret provided' response. - Open a PR with your new check!
Links
- Packagist
- PackageMaven — quality data by PackageMaven
- Repository
- Issues