Skip to content

TheDragonCode/request-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🪢 Request Tracker

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.

About

End-to-end telemetry of inter-service communication

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Languages