mteu / typo3-monitoring-solr
Apache Solr health provider for EXT:monitoring: probes host and core reachability, the index queue, and the sanity of the Solr site configuration
Package info
github.com/mteu/typo3-monitoring-solr
Type:typo3-cms-extension
pkg:composer/mteu/typo3-monitoring-solr
Requires
- php: ~8.3.0 || ~8.4.0 || ~8.5.0
- ext-filter: *
- mteu/typo3-monitoring: ^1.0
- mteu/typo3-typed-extconf: ^1.3
- psr/log: ^3.0
- symfony/dependency-injection: ^7.4
- typo3/cms-core: ^13.4.23 || ^14.3.0
Requires (Dev)
- ext-simplexml: *
- eliashaeussler/phpunit-attributes: ^2.0
- eliashaeussler/version-bumper: ^4.1
- ergebnis/composer-normalize: ^2.47
- phpunit/phpunit: ^12.1 || ^13.1
- roave/security-advisories: dev-latest
- typo3/testing-framework: ^9.2
Suggests
- apache-solr-for-typo3/solr: The extension this provider monitors. Without it the provider stays inactive.
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-17 18:40:32 UTC
README
TYPO3 Monitoring: Apache Solr
This package provides the TYPO3 CMS extension EXT:monitoring_solr, an add-on for EXT:monitoring that reports
the health of the Apache Solr connections declared in your site configuration. It ships separately because obviously not
every installation runs or needs EXT:solr.
🚀 Features
The Solr monitoring result aggregates up to four sub-results:
| Sub-result | Healthy when … | Severity when failing |
|---|---|---|
Configuration |
Every solr_*_read value present in a site configuration can actually be read. |
unhealthy |
Host |
Every distinct Solr node answers its system-info request (one sub-result per node). | unhealthy |
Cores |
Every configured core on a reachable node answers an admin ping (one sub-result/core). | unhealthy |
Indexing Errors |
No item in the EXT:solr index queue (tx_solr_indexqueue_item) recorded an error. |
degraded (default) |
Monitoring targets derive directly from the site configuration, the very same solr_*_read keys EXT:solr itself uses
at runtime, including the fallback from a site language to the site level. No hard dependency on EXT:solr. The
monitoring provider reads the site configuration through TYPO3 core only, and reports itself inactive when the extension
is absent.
🔥 Quick Start
Installation
composer require mteu/typo3-monitoring-solr
That's the whole setup. EXT:monitoring discovers the provider through its service tag. That's it.
Configuration
In contrast to other providers, this one is enabled by default. Installing this extension is the opt-in. Since Connections are read from the site settings, they're not configured here. Only the toggle, the probe time-out, and the indexing-error severity:
# config/system/settings.php return [ 'EXTENSIONS' => [ 'monitoring_solr' => [ 'provider' => [ 'mteu\Monitoring\Solr\SolrProvider' => [ 'enabled' => true, 'timeout' => 5, 'indexingErrorSeverity' => 'degraded', ], ], ], ], ];
When it reports inactive
The provider stays inactive (rather than falsely healthy) while EXT:solr is not installed, or while no site
configures a Solr read connection. Configuration that is present but unusable is the exception. It keeps the provider
active and is reported, because a setup EXT:solr cannot read likely counts as a failure.
📙 Documentation
Please have a look at the extension documentation. It covers the site-configuration layout
this provider reads, the /solr path normalization, what counts as an unusable value, and notes on TLS and proxies.
🤝 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 exists because of EXT:solr and the site-configuration
schema it defines. Reading probe targets from that same source is what keeps this health check from drifting away
from the connections actually in use.
⭐ 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.