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');
|