Search by

rafalmasiarek / dashboard-kit-addon-request-id

rafalmasiarek

Per-request correlation ID addon for dashboard-kit. Injects request_id into all Monolog channels and propagates it via X-Request-ID header.

Package info

github.com/rafalmasiarek/php-dashboard-kit-addon-request-id

pkg:composer/rafalmasiarek/dashboard-kit-addon-request-id

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-09-13 02:13 UTC

This package is auto-updated.

Last update: 2026-09-13 02:14:04 UTC


README

Per-request correlation ID addon for dashboard-kit.

Generates or propagates a request ID from an HTTP header and injects req.id into every Monolog log record, making it possible to trace all log entries for a single request across channels.

Installation

composer require rafalmasiarek/dashboard-kit-addon-request-id

Usage

use rafalmasiarek\DashboardKit\Dashboard;
use rafalmasiarek\DashboardKitRequestId\RequestIdAddon;

$dashboard = Dashboard::create(__DIR__ . '/../', [ /* config */ ]);

RequestIdAddon::register($dashboard->getApp(), $dashboard->getContainer());

$dashboard->run();

Configuration

RequestIdAddon::register($dashboard->getApp(), $dashboard->getContainer(), [
    'header' => 'X-Request-ID',  // default; use 'X-Amzn-Trace-Id' behind AWS ALB
]);
Option Default Description
header X-Request-ID HTTP header to read the ID from and propagate back

Log output

Every log record in app, audit, and error channels receives:

req.id=550e8400-e29b-41d4-a716-446655440000

When the header is absent, a UUID v4 is generated per request.

Cross-addon correlation

register() saves the processor in the container as log.processor.request_id. Other addons that create their own Monolog loggers (e.g. dashboard-kit-addon-geoip) pull this processor automatically to include req.id in their own log channels.

Register this addon before any other addon that should include req.id in its logs:

RequestIdAddon::register($dashboard->getApp(), $container);  // first
GeoIpAddon::register($dashboard->getApp(), $container);       // picks up req.id automatically

Requirements

  • PHP 8.2+
  • dashboard-kit
  • monolog/monolog ^3

License

Business Source License 1.1 — see LICENSE. For alternative licensing, contact us.