To instrument internal developer platforms with OpenTelemetry, you can leverage its SDKs to create telemetry data that helps you monitor the performance and usage of your platform. Here’s a brief guide along with an example.
<?php
// Composer autoload
require 'vendor/autoload.php';
use OpenTelemetry\Sdk\Trace\TracerProvider;
use OpenTelemetry\Sdk\Trace\SpanProcessor;
use OpenTelemetry\Sdk\Trace\SimpleSpanProcessor;
use OpenTelemetry\Exporter\Trace\AzureMonitorExporter;
// Set up the tracer provider
$tracerProvider = new TracerProvider();
$exporter = new AzureMonitorExporter();
$spanProcessor = new SimpleSpanProcessor($exporter);
$tracerProvider->addSpanProcessor($spanProcessor);
// Get a tracer
$tracer = $tracerProvider->getTracer('my-internal-platform');
// Start a new span
$span = $tracer->startSpan('task_name');
// ... your code here ...
// End the span
$span->end();
?>
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?