middleware / laravel-apm
Middleware integration for Laravel
Requires
- php: ^7.3|^8.0|^8.1
- guzzlehttp/promises: ^2.0
- laravel/framework: ^8.0|^9.0|^10.0
- open-telemetry/exporter-otlp: ^1.0
- open-telemetry/opentelemetry: ^1.0
- open-telemetry/opentelemetry-logger-monolog: ^1.0
- php-http/httplug: ^2.4
Suggests
- guzzlehttp/guzzle: Required for OTLP HTTP transport if not using Laravel's HTTP client
This package is auto-updated.
Last update: 2024-10-11 13:14:54 UTC
README
Laravel APM
This guide will walk you through the process of installing and configuring our Laravel apm package in your project.
Prerequisites
- Laravel project (version 8.x or higher recommended)
- Composer
- PHP 7.4 or higher
Installation
To install the package, follow these steps:
-
Install the package using Composer:
composer require Middleware/laravel-apm
-
Add the service provider to the
providers
array inconfig/app.php
:'providers' => [ // ... Middleware\LaravelApm\LaravelApmServiceProvider::class, ],
Configuration
- This package uses following environment variables:
-
MW_TARGET
orOTEL_EXPORTER_OTLP_ENDPOINT
: The endpoint for middleware agent (default: http://localhost:9320), in container environment it might be<DOCKER_BRIDGE_GATEWAY_ADDRESS>:9320
. -
MW_SERVICE_NAME
orOTEL_SERVICE_NAME
: The name of your service (default: service-<process_id>) -
OTEL_EXPORTER_OTLP_PROTOCOL
: The protocol that you want to use for exporting data to provided target. (default: http/json)
-
Update your
.env
file with the appropriate values:MW_SERVICE_NAME=your-service-name
Make sure to set the appropriate values for your OpenTelemetry collector setup.
Tracing (Deprecated)
Note: This way of tracing is deprecated, please use this script for tracing.
Laravel APM provides a middleware class to enable tracing. To register the tracing middleware, follow these steps:
-
Open
app/Http/Kernel.php
file. -
Add the middleware to
$middleware
array:protected $middleware = [ // ... \Middleware\LaravelApm\Middleware\TracingMiddleware::class, ];
Logging
The package integrates with Laravel's logging system to capture and export logs. The logs will be sent to the configured OpenTelemetry collector. To enable logging, make sure you have configured the appropriate log driver and settings in your Laravel application. The package will automatically capture and export the logs to the OpenTelemetry collector.
Metrics
As of now, there's very little support for metrics, We'll be adding more metrics in future. For enabling traces-related metrics, follow these steps:
-
Open
app/Http/Kernel.php
file. -
Add the middleware to
$middleware
array:protected $middleware = [ // ... \Middleware\LaravelApm\Middleware\MetricsMiddleware::class, ];
-
If you have enabled tracing, then add this middleware after tracing.