build(monitoring): implement open-telemetry support

This commit is contained in:
2024-08-03 19:30:13 +02:00
parent 4361655127
commit 0bff14f820
6 changed files with 1061 additions and 2 deletions

View File

@@ -0,0 +1,35 @@
<?php
declare(strict_types=1);
namespace App\Bridge\Monolog\Handler;
use Monolog\Handler\AbstractHandler;
use Monolog\LogRecord;
use OpenTelemetry\API\Globals;
use OpenTelemetry\Contrib\Logs\Monolog\Handler;
use Psr\Log\LogLevel;
/**
* This handler will send logs to OpenTelemetry using the Monolog adapter.
*/
final class SymfonyOtelHandler extends AbstractHandler
{
private readonly Handler $innerHandler;
public function __construct()
{
parent::__construct();
$this->innerHandler = new Handler(
Globals::loggerProvider(),
LogLevel::INFO, //or `Logger::INFO`, or `Level::Info` depending on monolog version
true,
);
}
public function handle(LogRecord $record): bool
{
return $this->innerHandler->handle($record);
}
}