Налаштування APM — моніторингу продуктивності застосунку
APM (Application Performance Monitoring) відслідковує продуктивність на рівні коду: повільні запити, вузькі місця БД, час виконання функцій, розподілені трассування між мікросервісами.
Що дає APM
Трассування — повний шлях запиту: HTTP → маршрутизатор → контролер → ORM → SQL → Redis → HTTP відповідь. Кожний крок має вимірюваний час. Повільний SQL-запит видно одразу без аналізу логів.
Профілювання — flamegraph за функціями: куди йде процесорний час.
SLO Метрики — apdex (частка запитів швидше за поріг), p50/p95/p99 latency, error rate.
OpenTelemetry: стандарт для APM
OpenTelemetry — вендор-нейтральний стандарт. Один SDK → дані до будь-якого бекенду: Jaeger, Zipkin, Datadog, New Relic, Grafana Tempo.
// composer.json потребує
// "open-telemetry/sdk": "^1.0"
// "open-telemetry/exporter-otlp": "^1.0"
// app/Providers/OpenTelemetryProvider.php
use OpenTelemetry\SDK\Trace\SpanProcessor\SimpleSpanProcessor;
use OpenTelemetry\Exporter\Otlp\OtlpHttpTransport;
use OpenTelemetry\Exporter\Otlp\SpanExporter;
$transport = new OtlpHttpTransport(env('OTEL_EXPORTER_OTLP_ENDPOINT'));
$exporter = new SpanExporter($transport);
// Реєстрація трейсера глобально
Jaeger: Open Source APM
Docker Compose:
services:
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "6831:6831/udp" # Jaeger agent
- "16686:16686" # UI
Відправляйте трассування з Laravel на порт Jaeger 6831.
Розклад
Базове налаштування OpenTelemetry: 1-2 дні. Розподілене трассування між кількома сервісами: 2-3 дні.







