SimpleJaeger/wp-content/plugins/simple-jaeger/simple-jaeger.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');