mteu / typo3-monitoring
Exposes health status information of selected components in your TYPO3 instance to be integrated in external monitoring
Package info
github.com/mteu/typo3-monitoring
Type:typo3-cms-extension
pkg:composer/mteu/typo3-monitoring
Requires
- php: ~8.3.0 || ~8.4.0 || ~8.5.0
- doctrine/dbal: ^4.4
- mteu/typo3-typed-extconf: ^1.3
- psr/clock: ^1.0
- psr/http-factory: ^1.1
- psr/http-message: ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- psr/log: ^3.0
- symfony/console: ^7.4
- symfony/dependency-injection: ^7.4
- symfony/http-foundation: ^7.4
- symfony/mailer: ^7.4
- symfony/mime: ^7.4
- typo3/cms-backend: ^13.4.23 || ^14.3.0
- typo3/cms-core: ^13.4.23 || ^14.3.0
- typo3fluid/fluid: ^2.15.0 || ^4.3 || ^5.3
Requires (Dev)
- ext-simplexml: *
- composer/class-map-generator: ^1.1
- eliashaeussler/phpunit-attributes: ^2.0
- eliashaeussler/version-bumper: ^4.0
- ergebnis/composer-normalize: ^2.47
- helhum/typo3-console: ^9.0
- phpunit/phpcov: ^11.0.0 || ^12.0.0
- phpunit/phpunit: ^12.1 || ^13.1
- roave/security-advisories: dev-latest
- symfony/clock: ^7.4 || ^8.0
- typo3/cms-scheduler: ^13.4.23 || ^14.3.0
- typo3/testing-framework: ^9.2
Suggests
- typo3/cms-scheduler: ^13.4.23 || ^14.3.0
README
TYPO3 Monitoring
This package provides the TYPO3 CMS extension EXT:monitoring, which equips TYPO3 with a highly extensible monitoring system
for tracking the health state of custom components. It delivers health reports via an API endpoint, a CLI command, and a
backend dashboard, with optional push notifications to external channels.
🚀 Features
- Extensible monitoring system for custom authorization, monitoring checks, and push notifications.
- Delivers health reports in several ways:
- Structured JSON responses for the overall health status
- Command-line interface for running monitoring checks
- Backend Dashboard
- Optional Push notification to external channels (e.g. the built-in EmailReporter)
- Built-in providers this package ships:
- Scheduler Provider (Monitors TYPO3 Scheduler tasks.)
- Caching for expensive monitoring operations
🔥 Quick Start
Installation
composer require mteu/typo3-monitoring
Configuration
# config/system/settings.php return [ 'EXTENSIONS' => [ 'monitoring' => [ 'api' => [ 'endpoint' => '/monitor/health', 'enforceHttps' => true, ], 'authorizer' => [ 'mteu\Monitoring\Authorization\TokenAuthorizer' => [ 'enabled' => true, 'secret' => 'your-secure-secret', 'authHeaderName' => 'X-TYPO3-MONITORING-AUTH', ], ], ], ], ];
See Documentation/Configuration.md for all available settings.
Generate the token
The secret you configure is not the value you send. The token is an HMAC of
the endpoint path keyed with that secret — send the token, not the secret.
The easiest way to get a ready-to-use value: open the Monitoring → Authorizers backend module, which displays the current token for your configured endpoint.
Or generate it programmatically (endpoint path first, then secret):
use TYPO3\CMS\Core\Crypto\HashService; $token = (new HashService())->hmac('/monitor/health', 'your-secure-secret');
Then send it in the configured header:
curl -H "X-TYPO3-MONITORING-AUTH: <token>" https://<your-site>/monitor/health
See Documentation/Authorization.md for the token's security properties.
Endpoint
GET https://<your-site>/monitor/health
Access requires authentication — either a TYPO3 backend administrator session or a token header. See Documentation/Authorization.md for details, including the security properties of the token.
The endpoint returns a JSON health report. See the API Reference for the full response schema and HTTP status codes.
🧑💻 Development
For guides on creating custom providers and authorizers, see the Documentation.
📙 Documentation
Please have a look at the extension documentation. It provides a detailed look into the possibilities you have in extending and customizing this extension for your specific TYPO3 components.
🤝 Contributing
Contributions are very welcome! Please have a look at the Contribution Guide. It lays out the workflow of submitting new features or bugfixes.
🔒 Security
Please refer to the Security Policy if you discover a security vulnerability in this extension. Be warned, though. I cannot afford bounty. This is a private project.
💛 Acknowledgements
This extension is inspired by cpsit/monitoring and its generic approach to offer an extensible provider
interface. I've transformed and extended the underlying concept into a TYPO3 specific implementation.
⭐ License
This extension is licensed under the GPL-2.0-or-later license.
💬 Support
For issues and feature requests, please use the GitHub issue tracker.