flow-php/telemetry
Flow Telemetry is a PHP library for metrics and tracing, built to integrate smoothly with Flow PHP ETL pipelines. Use it to instrument jobs, collect runtime metrics, and add traces for observability. Includes docs, installation, and upgrade guides.
config/telemetry.php).Psr/Log, OpenTelemetry\API) for seamless adoption.Log::channel('telemetry') or a custom TelemetryMetrics facade).illuminate/queue events).DB::listen).request()->attributes) and Flow’s tracing spans.PrometheusExporter for Laravel Prometheus clients).laravel-telemetry package or service provider).Telemetry in a LaravelTelemetry facade).Log::channel('telemetry')) or integrate with Prometheus clients (e.g., kris/laravel-prometheus).config/telemetry.php).Phase 1: Proof of Concept (1–2 Dev Days)
composer require flow-php/telemetry.Phase 2: Abstraction Layer (2–3 Dev Days)
Telemetry class to Laravel’s container.
// app/Providers/TelemetryServiceProvider.php
public function register()
{
$this->app->singleton('telemetry', fn() => new \Flow\Telemetry\Telemetry());
}
// app/Helpers/Telemetry.php
class TelemetryHelper
{
public static function startSpan(string $name): \Flow\Telemetry\Span
{
return app('telemetry')->startSpan($name);
}
}
config/telemetry.php:
// config/telemetry.php
return [
'exporters' => [
'prometheus' => [
'host' => env('TELEMETRY_PROMETHEUS_HOST', 'localhost'),
'port' => env('TELEMETRY_PROMETHEUS_PORT', 9090),
],
],
];
Phase 3: Core Integration (3–5 Dev Days)
// app/Http/Middleware/TelemetryMiddleware.php
public function handle(Request $request, Closure $next)
{
$span = TelemetryHelper::startSpan('http.request');
try {
return $next($request);
} finally {
$span->end();
}
}
//
How can I help you explore Laravel packages today?