Skip to content

TheDragonCode/telemetry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🪢 Telemetry

the dragon code telemetry

Stable Version Total Downloads License

End-to-end telemetry of inter-service communication.

Installation

You can install the Telemetry package via Composer:

composer require dragon-code/telemetry

Basic Usage

Using Default Header Names

use DragonCode\Telemetry\TelemetryHeader;
use DragonCode\Telemetry\TelemetryRequest;
use Symfony\Component\HttpFoundation\Request;

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

$telemetry = new TelemetryRequest($request, new TelemetryHeader);

function telemetry(Request $request, ?int $userId = null): Request
{
    return (new TelemetryRequest($request, new TelemetryHeader))
        ->userId($userId)
        ->ip()
        ->traceId()
        ->getRequest();
}

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

// For subsequent services
telemetry($request);

Custom Headers

use DragonCode\Telemetry\TelemetryHeader;
use DragonCode\Telemetry\TelemetryRequest;
use Symfony\Component\HttpFoundation\Request;

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

$telemetry = new TelemetryRequest($request, new TelemetryHeader);

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

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

$item = telemetry($request);

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

Custom Header Names

use DragonCode\Telemetry\TelemetryHeader;

return new TelemetryHeader(
    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