vendic / magento2-oh-dear-checks
Oh Dear! Magento 2 module
Package info
github.com/Vendic/magento2-oh-dear
Type:magento2-module
pkg:composer/vendic/magento2-oh-dear-checks
Requires
- php: ~8.1.0|~8.2.0|~8.3.0|~8.4.0
- magento/framework: 103.0.*
- magento/magento-composer-installer: *
Requires (Dev)
None
Suggests
- vendic/magento2-oh-dear-elasticsuite: ElasticSuite checks for Oh Dear
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-04 10:38:35 UTC
README
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.
Installation
composer require vendic/magento2-oh-dear-checks
Configuration
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 ], ]
Disabling Checks
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 ] ],
Checks
TODO
Store fronts
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.
Write your own checks
- 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!