The indexers are stale.
The store works normally and shows shoppers yesterday prices and stock levels. No monitoring from the outside has any way to tell this apart from a correct state.
A stale index does not take Magento down. The store runs, only the listings, prices and stock come from before the last reindex. Cron dies just as quietly, and with it the order emails, the pricing rules and the cart cleanup. The extension reads both at the source.
Requirements: Magento 2.4 and newer, PHP 8.1 and newer
Three situations on a perfectly healthy site. A probe knocking from the internet has no way of seeing any of them.
The store works normally and shows shoppers yesterday prices and stock levels. No monitoring from the outside has any way to tell this apart from a correct state.
Without it order emails do not go out, pricing rules do not apply and carts are never cleaned up. The store takes traffic the whole time.
In Magento 2.4 a dead search cluster takes down search and category listings, which means sales — while the home page answers the way it always does.
Every minute by default. Each parameter carries its own state and its own response time, so the panel shows not just that something broke, but exactly what stopped.
Which indexes are stale, and since when.
When the last job finished successfully, and how many errors and misses there were.
The state of the cluster behind search and category listings.
Whether every enabled store view has an active payment and shipping method.
A test query on every read, together with its response time.
Writing and reading a control key.
Whether var, pub/media and generated are writable, the size of the installation and how much of the hosting quota is used, if the host exposes it.
The connection to the mail server. Mail sent through a third party module is not visible from here.
The backlog in the queues kept in the database. A store on RabbitMQ cannot be measured this way, and then the parameter simply does not appear.
This is not a malware scan and we do not pretend it is one. We check the settings that most often survive a release, and for each of them we say what the target state is.
How many active accounts reach orders and prices, and whether the set has changed.
Whether the panel sits somewhere other than the default /admin and whether its links are protected by a key.
Whether the module Magento ships out of the box has not been turned off.
Whether the store runs in production mode. Developer mode exposes the inside of the application and slows the store down several times over.
Whether the key in app/etc/env.php is your own and long enough. It encrypts the payment gateway credentials.
Whether env.php and config.php, and var, pub/media and generated, are not left wide open.
How many packages have newer versions. Numbers only, no names.
All of it on your side. You give us no server passwords and no access to your panel.
mkdir -p app/code/Calmfox && unzip calmfox-watch-magento.zip -d app/code/Calmfox
mv app/code/Calmfox/calmfox-watch app/code/Calmfox/Watch
bin/magento module:enable Calmfox_Watch && bin/magento setup:upgrade
bin/magento cache:flush
In your own admin panel you click Connect, you can create the Calmfox Watch account along the way, and you come back with the integration in place. No key is copied by hand.
No page content, no customer data, no database rows and no passwords. What travels are numbers and service states. Even the set of accounts with full permissions travels as a one way fingerprint salted with your installation secret: enough to detect a change, useless anywhere outside your site.
What we store and for how long ›After enabling the module you also run bin/magento setup:di:compile, exactly as with any other module. The whole installation is four commands from the integration catalogue.
Not yet. You unpack it into app/code/Calmfox/Watch from the package you download here. Until it is published in the catalogue, we do not pretend that it is.
No. We read the queues kept in the database, and with RabbitMQ the parameter simply does not appear, instead of showing a zero and pretending everything was checked.
It answers only with the secret key in the address (128 bits, compared in constant time), with headers that forbid indexing and caching. Without the key it returns 403. You rotate the key with one click and the previous one keeps working for another fifteen minutes, so the switch never raises a false alarm.
We have packages for WordPress, Neos, Sylius and Magento. Every other site stays on monitoring from the outside, which needs nothing installed on the server — we simply will not see the inside.
The free technical review covers availability, the certificate, the domain, email, content and forms. It ends with a score and a list of tasks you can hand to your developer. No payment card and no commitment.