Lab 13: Observability
Overview
Step 1: Setup
mkdir /tmp/otellab && cd /tmp/otellab
# Install OpenTelemetry SDK
composer require open-telemetry/sdk:^1.0 --no-interaction
# For logs
composer require monolog/monolog:^3.0 --no-interaction<?php
require 'vendor/autoload.php';
use OpenTelemetry\SDK\Trace\TracerProvider;
use OpenTelemetry\SDK\Trace\SpanExporter\InMemoryExporter;
use OpenTelemetry\SDK\Trace\SpanProcessor\SimpleSpanProcessor;
// Quick check
$exporter = new InMemoryExporter();
$provider = new TracerProvider(new SimpleSpanProcessor($exporter));
$tracer = $provider->getTracer('test');
$span = $tracer->spanBuilder('hello')->startSpan();
$span->end();
$provider->shutdown();
echo "OpenTelemetry spans: " . count($exporter->getSpans()) . "\n";Step 2: TracerProvider & Span Basics
Step 3: Context Propagation (W3C TraceContext)
Step 4: Span Processor & Batch Export
Step 5: Custom Metrics (Manual Instrumentation)
Step 6: Structured Logging with Monolog
Step 7: Tracing Middleware
Step 8: Capstone — Observability Bundle
Summary
Pillar
Tool
Key Concept
Last updated
