jop-software/typo3-loki

Grafana Loki integration for TYPO3

Installs: 3 763

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 1

Open Issues: 6

Type:typo3-cms-extension

v1.1.1 2024-11-11 12:44 UTC

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.

  1. 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 => [],
    ],
];
  1. 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.

© 2022, jop-software Inh. Johannes Przymusinski