worldia/instrumentation-bundle

Installs: 53 330

Dependents: 0

Suggesters: 0

Security: 0

Stars: 24

Watchers: 6

Forks: 10

Open Issues: 2

Type:symfony-bundle

2.0.3 2025-01-16 11:36 UTC

README

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