PHP code example of laratel / opentelemetry

1. Go to this page and download the library: Download laratel/opentelemetry library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

laratel / opentelemetry example snippets


'providers' => [
    // Other Service Providers...
    Laratel\Opentelemetry\Providers\OpenTelemetryServiceProvider::class,
],

'otel' => [
    'driver' => 'custom',
    'via' => Laratel\Opentelemetry\Logger\OtelLoggerFactory::class,
    'level' => 'debug',
],

protected $middleware = [
    \Laratel\Opentelemetry\Middleware\OpenTelemetryMetricsMiddleware::class,
    \Laratel\Opentelemetry\Middleware\OpenTelemetryTraceMiddleware::class,
];

protected $routeMiddleware = [
    'opentelemetry.metrics' => \Laratel\Opentelemetry\Middleware\OpenTelemetryMetricsMiddleware::class,
    'opentelemetry.trace' => \Laratel\Opentelemetry\Middleware\OpenTelemetryTraceMiddleware::class,
];

Route::middleware(['opentelemetry.metrics', 'opentelemetry.trace'])->group(function () {
    Route::get('/example', function () {
        return response()->json(['message' => 'Tracing and metrics enabled']);
    });
});

use Illuminate\Support\Facades\Log;

Log::channel('otel')->info('Test log for OpenTelemetry collector', ['user' => 'example']);

use Laratel\Opentelemetry\Services\TraceService;

$traceService = app(TraceService::class);
$tracer = $traceService->getTracer();

$span = $tracer->spanBuilder('custom-operation')->startSpan();
$span->setAttribute('custom.attribute', 'value');
// Perform some operation
$span->end();

use Laratel\Opentelemetry\Services\MetricsService;

$metricsService = app(MetricsService::class);
$metricsService->metrics['requestCount']->add(1, ['route' => '/example']);

Route::middleware(['opentelemetry.metrics', 'opentelemetry.trace'])->get('/api/example', function () {
    return response()->json(['message' => 'Telemetry data collected']);
});
bash
php artisan vendor:publish --provider="Laratel\Opentelemetry\Providers\OpenTelemetryServiceProvider"