flow-php / telemetry-otlp-bridge
Flow PHP Telemetry - OTLP Exporter Bridge
Fund package maintenance!
norberttech
flow-php.com/sponsor
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/flow-php/telemetry-otlp-bridge
Requires
- php: ~8.3.0 || ~8.4.0 || ~8.5.0
- flow-php/telemetry: 0.31.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
Requires (Dev)
- google/protobuf: ^4.0
- grpc/grpc: ^1.74
- nyholm/psr7: ^1.8
- open-telemetry/gen-otlp-protobuf: ^1.8
- symfony/http-client: ^6.4 || ^7.3 || ^8.0
Suggests
- ext-grpc: Required for gRPC transport
- google/protobuf: Required for gRPC transport with binary protobuf encoding
- open-telemetry/gen-otlp-protobuf: Generated PHP classes for OTLP protobuf messages (required for gRPC transport)
README
OTLP (OpenTelemetry Protocol) exporter bridge for Flow PHP Telemetry library.
Enables exporting traces, metrics, and logs to any OTLP-compatible backend:
- SigNoz
- Jaeger
- Grafana (Tempo, Mimir, Loki)
- Sentry
- Datadog
- Honeycomb
- New Relic
- Any OTLP-compatible collector
Important
This repository is a subtree split from our monorepo. If you'd like to contribute, please visit our main monorepo flow-php/flow.
Installation
composer require flow-php/telemetry-otlp-bridge
You also need a PSR-18 HTTP client:
composer require symfony/http-client nyholm/psr7
Usage
<?php use function Flow\Bridge\Telemetry\OTLP\DSL\otlp_telemetry; use function Flow\Bridge\Telemetry\OTLP\DSL\otlp_http_transport; use Nyholm\Psr7\Factory\Psr17Factory; use Symfony\Component\HttpClient\Psr18Client; $psr17Factory = new Psr17Factory(); $httpClient = new Psr18Client(); $telemetry = otlp_telemetry( transport: otlp_http_transport( endpoint: 'http://localhost:4318', httpClient: $httpClient, requestFactory: $psr17Factory, streamFactory: $psr17Factory, ), serviceName: 'my-etl-pipeline', ); $tracer = $telemetry->tracer('my-component'); $span = $tracer->startSpan('process-batch'); // ... work ... $span->end(); $telemetry->flush();