Skip to content

worldia/instrumentation-bundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e4c1c05 · Jan 21, 2025
Jan 15, 2025
Jan 12, 2025
Jan 14, 2025
Jan 21, 2025
Jan 15, 2025
Jan 12, 2025
Jan 14, 2025
Jan 14, 2025
Jan 15, 2025
Apr 23, 2024
Jan 14, 2025
Jan 13, 2025

Repository files navigation

Instrumentation for Symfony

Using the official OpenTelemetry SDK.

Features

  • Minimal auto-instrumentation for requests, console commands, consumers and doctrine
  • Trace context propagation from incoming requests to consumers and outgoing http calls
  • Minimal metrics for requests, consumers and messages
  • Trace context propagation for database requests (using sqlcommenter)

Full working example

For a fully working example including Jaeger, Grafana, Tempo, Loki and Prometheus, check the example directory.

Installation and configuration

Install along your exporter implementation, eg. open-telemetry/exporter-otlp.

composer require worldia/instrumentation-bundle open-telemetry/exporter-otlp

Add to bundles.php.

return [
    // Other bundles
    Instrumentation\InstrumentationBundle::class => ['all' => true],
];

Configure OTEL env vars. Replace <your-telemetry-collector> by yours, eg. jaeger, tempo, otel-collector, ...

OTEL_SERVICE_NAME=test-app
OTEL_PHP_DETECTORS=none
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=Delta
OTEL_EXPORTER_OTLP_PROTOCOL=http/json
OTEL_EXPORTER_OTLP_ENDPOINT=http://<your-telemetry-collector>:4318

Enable the extension. See the complete configuration reference here or run bin/console config:dump-reference instrumentation.

instrumentation: ~

monolog:
  handlers:
    otel:
      type: service
      id: Instrumentation\Logging\OtelHandler

Usage