middleware/laravel-apm

Middleware integration for Laravel
1,255
Install
composer require middleware/laravel-apm
Latest Version:v1.0.1
PHP:^7.3|^8.0|^8.1
Laravel:8 – 12
Last Updated:Mar 13, 2025
Links: GitHub  ·  Packagist
Maintainer: middleware

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:

  1. Install the package using Composer:

    composer require Middleware/laravel-apm
    
  2. Add the service provider to the providers array in config/app.php:

    'providers' => [
        // ...
        Middleware\LaravelApm\LaravelApmServiceProvider::class,
    ],
    
    

Configuration

  1. This package uses following environment variables:
  • MW_TARGET or OTEL_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 or OTEL_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)

  1. 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:

  1. Open app/Http/Kernel.php file.

  2. 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:

  1. Open app/Http/Kernel.php file.

  2. Add the middleware to $middleware array:

    protected $middleware = [
        // ...
        \Middleware\LaravelApm\Middleware\MetricsMiddleware::class,
    ];
    
  3. If you have enabled tracing, then add this middleware after tracing.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

644,549,754 9,698
laravel/framework

The Laravel Framework.

593,882,149 34,959
laravel/tinker

Powerful REPL for the Laravel framework.

507,193,856 7,441
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

423,477,751 607
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

399,241,428 4,660

Version History

Version Released PHP Laravel License
v1.0.1 ^7.3|^8.0|^8.1 ^8.0|^9.0|^10.0|^11.0|^12.0
1.0.0 ^7.3|^8.0|^8.1 ^8.0|^9.0|^10.0
0.0.2 ^7.3|^8.0|^8.1 ^8.0|^9.0|^10.0