jop-software / typo3-loki
Grafana Loki integration for TYPO3
Installs: 3 586
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 5
Type:typo3-cms-extension
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- typo3/cms-core: ^11.5
Requires (Dev)
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.0
- saschaegerer/phpstan-typo3: ^1.0
- squizlabs/php_codesniffer: ^3.6
- ssch/typo3-rector: ^1.0
- typo3/minimal: ^v11.5.0
README
TYPO3 Loki Client
Monitor logging output of your TYPO3 installation
Professional Support
Professional support is available, please contact info@jop-software.de for more information.
Configuration
There are two possible ways to use this extension.
- Use the JsonWriter to convert all logs to JSON before writing them to the log file.
This way, you can process the logs with a different loki client like Promtail
$GLOBALS['TYPO3_CONF_VARS']['LOG']['writerConfiguration'] = [ // Log handling configuration for ERROR logs // Set this to DEBUG to process all logs. \TYPO3\CMS\Core\Log\LogLevel::ERROR => [ // Convert all logs to JSON to scrape them with loki clients like Promtail \Jops\TYPO3\Loki\Log\Writers\JsonWriter::class => [], ], ];
- Use the LokiWriter to send logs directly to a configured loki instance.
You can define labels here, that will be attached to the log line sent to loki.
See: Configure a Loki instance
$GLOBALS['TYPO3_CONF_VARS']['LOG']['writerConfiguration'] = [ // Log handling configuration for ERROR logs // Set this to DEBUG to process all logs. \TYPO3\CMS\Core\Log\LogLevel::ERROR => [ // Configure LokiWrite to send logs to Loki \Jops\TYPO3\Loki\Log\Writers\LokiWriter::class => [ "labels" => [ "key" => "value", ], ], ], ];
Configure a Loki instance.
If you want to use the LokiWriter, you need to have a loki instance configured. This can be done with the Extension
Configuration in the backend or in the AdditionalConfiguration.php
.
If your Loki installation is secured with http basic auth, you can provide those credentials here as well. Keep in mind
that the credentials are store as plain text in the configuration file.
This could be an example configuration:
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['loki'] = [ "base-url" => "https://loki.example.com", // Optional: Add basic-auth credentials if needed "basic-auth" => [ "username" => "username", "password" => "secure-password", ], ];
Supported TYPO3 Versions
The extension is only officially available and released for TYPO3 11.
If you need it in an older project, you can find a version that is compatible with TYPO3 9 and 10 in the typo3-9-10-compatability
branch.
Use dev-typo3-9-10-compatability
as the version in composer.
Local Development
We use DDEV for local development.
You get a complete ddev setup in this repository, just run ddev start
.
License
This project is licensed under GPL-2.0-or-later, see the LICENSE file for more information.