41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
/*
 | 
						|
Plugin Name: SimpleJaeger
 | 
						|
Description: A plugin to integrate Jaeger tracing with WordPress
 | 
						|
Version: 1.0
 | 
						|
Author: Colin
 | 
						|
*/
 | 
						|
 | 
						|
require __DIR__ . '/vendor/autoload.php';
 | 
						|
 | 
						|
use OpenTelemetry\Sdk\Trace\TracerProvider;
 | 
						|
use OpenTelemetry\Sdk\Trace\Exporter\JaegerExporter;
 | 
						|
use OpenTelemetry\Sdk\Trace\SpanProcessor\SimpleSpanProcessor;
 | 
						|
 | 
						|
function init_simple_jaeger() {
 | 
						|
    $jaeger_endpoint = getenv('JAEGER_ENDPOINT') ?: 'http://localhost:14268/api/traces';
 | 
						|
    $jaeger_service_name = getenv('JAEGER_SERVICE_NAME') ?: 'SimpleJaeger';
 | 
						|
 | 
						|
    $jaegerExporter = new JaegerExporter(
 | 
						|
        $jaeger_service_name,
 | 
						|
        $jaeger_endpoint
 | 
						|
    );
 | 
						|
 | 
						|
    $tracerProvider = new TracerProvider(
 | 
						|
        new SimpleSpanProcessor($jaegerExporter)
 | 
						|
    );
 | 
						|
 | 
						|
    $tracer = $tracerProvider->getTracer('io.opentelemetry.contrib.php');
 | 
						|
 | 
						|
    $span = $tracer->spanBuilder('wordpress-request')->startSpan();
 | 
						|
    $scope = $span->activate();
 | 
						|
 | 
						|
    $span->setAttribute('user', 'admin');
 | 
						|
 | 
						|
    $span->end();
 | 
						|
    $scope->detach();
 | 
						|
    $tracerProvider->shutdown();
 | 
						|
}
 | 
						|
 | 
						|
add_action('init', 'init_simple_jaeger');
 |