dragon-code/request-tracker

Request tracking across microservices

Installs: 26

Dependents: 2

Suggesters: 0

Security: 0

Stars: 2

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/dragon-code/request-tracker

1.1.0 2025-11-01 17:09 UTC

This package is auto-updated.

Last update: 2025-11-01 17:21:52 UTC


README

the dragon code request-tracker

Stable Version Total Downloads License

Request tracking across microservices.

Installation

You can install the Request Tracker package via Composer:

composer require dragon-code/request-tracker

Basic Usage

Using Default Header Names

use DragonCode\RequestTracker\TrackerHeader;
use DragonCode\RequestTracker\TrackerRequest;
use Symfony\Component\HttpFoundation\Request;

/** @var Request $request */
$request = /* ... */;

$tracker = new TrackerRequest($request, new TrackerHeader);

function tracker(Request $request, ?int $userId = null): Request
{
    return (new TrackerRequest($request, new TrackerHeader))
        ->userId($userId)
        ->ip()
        ->traceId()
        ->getRequest();
}

// For the first call
tracker($request, $user->id);

// For subsequent services
tracker($request);

Custom Headers

use DragonCode\RequestTracker\TrackerHeader;
use DragonCode\RequestTracker\TrackerRequest;
use Symfony\Component\HttpFoundation\Request;

/** @var Request $request */
$request = /* ... */;

$tracker = new TrackerRequest($request, new TrackerHeader);

function tracker(Request $request, ?int $userId = null): Request
{
    return (new TrackerRequest($request, new TrackerHeader))
        ->userId($userId)
        ->ip()
        ->traceId()
        ->custom('Some-Header', fn (Request $request) => 1234
        ->getRequest();
}
$item = tracker($request);

return $item->headers->get('Some-Header'); // 1234
$request->headers->set('Some-Header', 'qwerty');

$item = tracker($request);

return $item->headers->get('Some-Header'); // qwerty

Custom Header Names

use DragonCode\RequestTracker\TrackerHeader;

return new TrackerHeader(
    userId: 'Some-User-Id',
    ip: 'Some-IP',
    traceId: 'Some-Trace-Id',
);

License

This package is licensed under the MIT License.