Skip to content

Commit 1e2f4c8

Browse files
Rename package to dragon-code/request-tracker
1 parent 87149f7 commit 1e2f4c8

File tree

11 files changed

+79
-79
lines changed

11 files changed

+79
-79
lines changed

README.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,66 @@
1-
# 🪢 Telemetry
1+
# 🪢 Request Tracker
22

3-
![the dragon code telemetry](https://preview.dragon-code.pro/the%20dragon%20code/telemetry.svg?brand=php&mode=auto)
3+
![the dragon code request-tracker](https://preview.dragon-code.pro/the%20dragon%20code/request-tracker.svg?brand=php&mode=auto)
44

55
[![Stable Version][badge_stable]][link_packagist]
66
[![Total Downloads][badge_downloads]][link_packagist]
77
[![License][badge_license]][link_license]
88

9-
End-to-end telemetry of inter-service communication.
9+
Request tracking across microservices.
1010

1111
## Installation
1212

13-
You can install the **Telemetry** package via [Composer](https://getcomposer.org):
13+
You can install the **Request Tracker** package via [Composer](https://getcomposer.org):
1414

1515
```Bash
16-
composer require dragon-code/telemetry
16+
composer require dragon-code/request-tracker
1717
```
1818

1919
## Basic Usage
2020

2121
### Using Default Header Names
2222

2323
```php
24-
use DragonCode\Telemetry\TelemetryHeader;
25-
use DragonCode\Telemetry\TelemetryRequest;
24+
use DragonCode\RequestTracker\TrackerHeader;
25+
use DragonCode\RequestTracker\TrackerRequest;
2626
use Symfony\Component\HttpFoundation\Request;
2727

2828
/** @var Request $request */
2929
$request = /* ... */;
3030

31-
$telemetry = new TelemetryRequest($request, new TelemetryHeader);
31+
$tracker = new TrackerRequest($request, new TrackerHeader);
3232

33-
function telemetry(Request $request, ?int $userId = null): Request
33+
function tracker(Request $request, ?int $userId = null): Request
3434
{
35-
return (new TelemetryRequest($request, new TelemetryHeader))
35+
return (new TrackerRequest($request, new TrackerHeader))
3636
->userId($userId)
3737
->ip()
3838
->traceId()
3939
->getRequest();
4040
}
4141

4242
// For the first call
43-
telemetry($request, $user->id);
43+
tracker($request, $user->id);
4444

4545
// For subsequent services
46-
telemetry($request);
46+
tracker($request);
4747
```
4848

4949
### Custom Headers
5050

5151
```php
52-
use DragonCode\Telemetry\TelemetryHeader;
53-
use DragonCode\Telemetry\TelemetryRequest;
52+
use DragonCode\RequestTracker\TrackerHeader;
53+
use DragonCode\RequestTracker\TrackerRequest;
5454
use Symfony\Component\HttpFoundation\Request;
5555

5656
/** @var Request $request */
5757
$request = /* ... */;
5858

59-
$telemetry = new TelemetryRequest($request, new TelemetryHeader);
59+
$tracker = new TrackerRequest($request, new TrackerHeader);
6060

61-
function telemetry(Request $request, ?int $userId = null): Request
61+
function tracker(Request $request, ?int $userId = null): Request
6262
{
63-
return (new TelemetryRequest($request, new TelemetryHeader))
63+
return (new TrackerRequest($request, new TrackerHeader))
6464
->userId($userId)
6565
->ip()
6666
->traceId()
@@ -70,25 +70,25 @@ function telemetry(Request $request, ?int $userId = null): Request
7070
```
7171

7272
```php
73-
$item = telemetry($request);
73+
$item = tracker($request);
7474

7575
return $item->headers->get('Some-Header'); // 1234
7676
```
7777

7878
```php
7979
$request->headers->set('Some-Header', 'qwerty');
8080

81-
$item = telemetry($request);
81+
$item = tracker($request);
8282

8383
return $item->headers->get('Some-Header'); // qwerty
8484
```
8585

8686
### Custom Header Names
8787

8888
```php
89-
use DragonCode\Telemetry\TelemetryHeader;
89+
use DragonCode\RequestTracker\TrackerHeader;
9090

91-
return new TelemetryHeader(
91+
return new TrackerHeader(
9292
userId: 'Some-User-Id',
9393
ip: 'Some-IP',
9494
traceId: 'Some-Trace-Id',
@@ -100,12 +100,12 @@ return new TelemetryHeader(
100100
This package is licensed under the [MIT License](LICENSE).
101101

102102

103-
[badge_downloads]: https://img.shields.io/packagist/dt/dragon-code/telemetry.svg?style=flat-square
103+
[badge_downloads]: https://img.shields.io/packagist/dt/dragon-code/request-tracker.svg?style=flat-square
104104

105-
[badge_license]: https://img.shields.io/packagist/l/dragon-code/telemetry.svg?style=flat-square
105+
[badge_license]: https://img.shields.io/packagist/l/dragon-code/request-tracker.svg?style=flat-square
106106

107-
[badge_stable]: https://img.shields.io/github/v/release/TheDragonCode/telemetry?label=packagist&style=flat-square
107+
[badge_stable]: https://img.shields.io/github/v/release/TheDragonCode/request-tracker?label=packagist&style=flat-square
108108

109109
[link_license]: LICENSE
110110

111-
[link_packagist]: https://packagist.org/packages/dragon-code/telemetry
111+
[link_packagist]: https://packagist.org/packages/dragon-code/request-tracker

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "dragon-code/telemetry",
3-
"description": "End-to-end telemetry of inter-service communication",
2+
"name": "dragon-code/request-tracker",
3+
"description": "Request tracking across microservices",
44
"license": "MIT",
55
"type": "library",
66
"authors": [
@@ -23,7 +23,7 @@
2323
"minimum-stability": "stable",
2424
"autoload": {
2525
"psr-4": {
26-
"DragonCode\\Telemetry\\": "src/"
26+
"DragonCode\\RequestTracker\\": "src/"
2727
}
2828
},
2929
"autoload-dev": {

src/TelemetryHeader.php

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/TrackerHeader.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DragonCode\RequestTracker;
6+
7+
readonly class TrackerHeader
8+
{
9+
public function __construct(
10+
public string $userId = 'X-Tracker-User-Id',
11+
public string $ip = 'X-Tracker-Ip',
12+
public string $traceId = 'X-Tracker-Trace-Id',
13+
) {}
14+
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22

33
declare(strict_types=1);
44

5-
namespace DragonCode\Telemetry;
5+
namespace DragonCode\RequestTracker;
66

77
use Closure;
88
use Ramsey\Uuid\UuidFactory;
99
use Symfony\Component\HttpFoundation\Request;
1010

1111
use function is_int;
1212

13-
class TelemetryRequest
13+
class TrackerRequest
1414
{
1515
public function __construct(
1616
protected Request $request,
17-
protected TelemetryHeader $header,
17+
protected TrackerHeader $header,
1818
) {}
1919

2020
public function userId(int|string|null $id): static

tests/Unit/HeaderTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
declare(strict_types=1);
44

5-
use DragonCode\Telemetry\TelemetryHeader;
5+
use DragonCode\RequestTracker\TrackerHeader;
66

77
it('uses default header names', function () {
8-
$header = new TelemetryHeader;
8+
$header = new TrackerHeader;
99

10-
expect($header->userId)->toBe('X-Telemetry-User-Id')
11-
->and($header->ip)->toBe('X-Telemetry-Ip')
12-
->and($header->traceId)->toBe('X-Telemetry-Trace-Id');
10+
expect($header->userId)->toBe('X-Tracker-User-Id')
11+
->and($header->ip)->toBe('X-Tracker-Ip')
12+
->and($header->traceId)->toBe('X-Tracker-Trace-Id');
1313
});
1414

1515
it('accepts custom header names', function () {
16-
$header = new TelemetryHeader(
16+
$header = new TrackerHeader(
1717
userId : 'Some-User-Id',
1818
ip : 'Some-IP',
1919
traceId: 'Some-Trace-Id',

tests/Unit/Request/CustomTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
declare(strict_types=1);
44

5-
use DragonCode\Telemetry\TelemetryHeader;
6-
use DragonCode\Telemetry\TelemetryRequest;
5+
use DragonCode\RequestTracker\TrackerHeader;
6+
use DragonCode\RequestTracker\TrackerRequest;
77
use Symfony\Component\HttpFoundation\Request;
88

99
it('sets header from callback when header is absent and casts ints to strings', function () {
1010
$headerName = 'Some-Header';
1111

1212
$request = makeRequest();
13-
$header = new TelemetryHeader;
14-
$telemetry = new TelemetryRequest($request, $header);
13+
$header = new TrackerHeader;
14+
$telemetry = new TrackerRequest($request, $header);
1515

1616
$telemetry->custom($headerName, function (Request $req) {
1717
expect($req)->toBeInstanceOf(Request::class);
@@ -28,8 +28,8 @@
2828
$request = makeRequest([$headerName => 'qwerty']);
2929

3030
$called = false;
31-
$header = new TelemetryHeader;
32-
$telemetry = new TelemetryRequest($request, $header);
31+
$header = new TrackerHeader;
32+
$telemetry = new TrackerRequest($request, $header);
3333

3434
$telemetry->custom($headerName, function () use (&$called) {
3535
$called = true; // must remain false if existing header is used

tests/Unit/Request/GetRequestTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
declare(strict_types=1);
44

5-
use DragonCode\Telemetry\TelemetryHeader;
6-
use DragonCode\Telemetry\TelemetryRequest;
5+
use DragonCode\RequestTracker\TrackerHeader;
6+
use DragonCode\RequestTracker\TrackerRequest;
77

88
it('returns the same Request instance via getRequest()', function () {
9-
$header = new TelemetryHeader;
9+
$header = new TrackerHeader;
1010
$request = makeRequest();
11-
$telemetry = new TelemetryRequest($request, $header);
11+
$telemetry = new TrackerRequest($request, $header);
1212

1313
expect($telemetry->getRequest())->toBe($request);
1414
});

tests/Unit/Request/IpTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@
22

33
declare(strict_types=1);
44

5-
use DragonCode\Telemetry\TelemetryHeader;
6-
use DragonCode\Telemetry\TelemetryRequest;
5+
use DragonCode\RequestTracker\TrackerHeader;
6+
use DragonCode\RequestTracker\TrackerRequest;
77

88
it('gets ip with correct precedence and sets header via ip()', function () {
9-
$header = new TelemetryHeader;
9+
$header = new TrackerHeader;
1010

1111
// 1) If telemetry header exists, it wins
1212
$request = makeRequest([$header->ip => '203.0.113.10']);
13-
$telemetry = new TelemetryRequest($request, $header);
13+
$telemetry = new TrackerRequest($request, $header);
1414
expect($telemetry->getIp())->toBe('203.0.113.10');
1515

1616
// 2) Else HTTP_X_REAL_IP (non-standard header name checked by the class)
1717
$request = makeRequest();
1818
$request->headers->set('HTTP_X_REAL_IP', '198.51.100.20');
19-
$telemetry = new TelemetryRequest($request, $header);
19+
$telemetry = new TrackerRequest($request, $header);
2020
expect($telemetry->getIp())->toBe('198.51.100.20');
2121

2222
// 3) Else client ip (REMOTE_ADDR)
2323
$request = makeRequest([], ['REMOTE_ADDR' => '192.0.2.30']);
24-
$telemetry = new TelemetryRequest($request, $header);
24+
$telemetry = new TrackerRequest($request, $header);
2525
expect($telemetry->getIp())->toBe('192.0.2.30');
2626

2727
// 4) ip() without argument sets header from getIp()

tests/Unit/Request/TrackIdTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22

33
declare(strict_types=1);
44

5-
use DragonCode\Telemetry\TelemetryHeader;
6-
use DragonCode\Telemetry\TelemetryRequest;
5+
use DragonCode\RequestTracker\TrackerHeader;
6+
use DragonCode\RequestTracker\TrackerRequest;
77
use Ramsey\Uuid\Uuid;
88

99
it('gets or sets trace id, generating a UUID v4 when absent', function () {
10-
$header = new TelemetryHeader;
10+
$header = new TrackerHeader;
1111

1212
// 1) If header exists, return it
1313
$request = makeRequest([$header->traceId => 'trace-123']);
14-
$telemetry = new TelemetryRequest($request, $header);
14+
$telemetry = new TrackerRequest($request, $header);
1515
expect($telemetry->getTraceId())->toBe('trace-123');
1616

1717
// 2) When absent, generate UUID v4
1818
$request = makeRequest();
19-
$telemetry = new TelemetryRequest($request, $header);
19+
$telemetry = new TrackerRequest($request, $header);
2020
$generated = $telemetry->getTraceId();
2121
expect(Uuid::isValid($generated))->toBeTrue()
2222
->and(Uuid::fromString($generated)->getVersion())->toBe(4);

0 commit comments

Comments
 (0)