Magento 2 extension · integration from the inside

The store shows yesterday prices.
And not a single error.

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

A healthy store is not the same as a store with current data.

Three situations on a perfectly healthy site. A probe knocking from the internet has no way of seeing any of them.

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.

Cron stopped finishing jobs.

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.

The search engine is down.

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.

What we read on every check.

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.

  • Store indexers

    Which indexes are stale, and since when.

  • Scheduled tasks (cron)

    When the last job finished successfully, and how many errors and misses there were.

  • Search engine (Elasticsearch / OpenSearch)

    The state of the cluster behind search and category listings.

  • Checkout path

    Whether every enabled store view has an active payment and shipping method.

  • Database

    A test query on every read, together with its response time.

  • Application cache (Redis / file)

    Writing and reading a control key.

  • Disk space

    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.

  • Outgoing email (SMTP)

    The connection to the mail server. Mail sent through a third party module is not visible from here.

  • Message queueswhen you use it

    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.

Security hygiene, once a day.

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.

  • Admin panel accounts

    How many active accounts reach orders and prices, and whether the set has changed.

  • Admin address and URL key

    Whether the panel sits somewhere other than the default /admin and whether its links are protected by a key.

  • Two factor authentication

    Whether the module Magento ships out of the box has not been turned off.

  • Application mode

    Whether the store runs in production mode. Developer mode exposes the inside of the application and slows the store down several times over.

  • Encryption key

    Whether the key in app/etc/env.php is your own and long enough. It encrypts the payment gateway credentials.

  • File and directory permissions

    Whether env.php and config.php, and var, pub/media and generated, are not left wide open.

  • Pending updates

    How many packages have newer versions. Numbers only, no names.

Installation.

All of it on your side. You give us no server passwords and no access to your panel.

  1. 1Unpack the package into app/code/Calmfox/Watch and enable the module.
  2. 2In production mode also run bin/magento setup:di:compile.
  3. 3In the store admin open Calmfox Watch in the menu bar and click „Connect through Calmfox Watch”.
Commands, requirements and unusual setups: the integration catalogue ›
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

One button to connect.

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.

What the package never sends.

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 ›

Before you ask.

What about production mode?

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.

Is the extension in Magento Marketplace?

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.

Our store runs on RabbitMQ. Will you measure the queues?

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.

How is the address you read the data from protected?

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.

Your site runs on something else?

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.

Check your website.
Free, in two minutes.

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.