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
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

gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
doctrine/dbal

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

631,580,251 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925
laravel/tinker

Powerful REPL for the Laravel framework.

489,754,436 7,444