PHPackages                             finatto/telemetry - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. finatto/telemetry

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

finatto/telemetry
=================

Wide-event telemetry dispatcher for Laravel 13 applications.

08PHP

Since May 6Pushed 1mo agoCompare

[ Source](https://github.com/finattogroup/laravel-telemetry)[ Packagist](https://packagist.org/packages/finatto/telemetry)[ RSS](/packages/finatto-telemetry/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

finatto/telemetry
=================

[](#finattotelemetry)

Wide-event telemetry para aplicações Laravel. Captura **um evento por request** via middleware, despacha para uma fila Redis dedicada, e um worker envia em batch para a API de logging.

- **Um wide event por request.** Sem `Log::info()` espalhados.
- **Contexto, não strings.** Campos nomeados.
- **Tail sampling.** 5xx e exceptions sempre. Sucesso por amostragem.
- **Falha silenciosa.** Telemetria nunca derruba a aplicação.

---

Instalação
----------

[](#instalação)

```
composer require finatto/telemetry
php artisan vendor:publish --tag=telemetry-config
```

Auto-discovery registra o `TelemetryServiceProvider` e a Facade `Telemetry` automaticamente.

Configuração mínima (`.env`)
----------------------------

[](#configuração-mínima-env)

```
TELEMETRY_SERVICE_NAME=finatto-admin
TELEMETRY_API_URL=http://telemetry-api:8080
TELEMETRY_API_KEY=sua-api-key
TELEMETRY_SAMPLE_RATE=0.1
```

Registrar middleware (`bootstrap/app.php`)
------------------------------------------

[](#registrar-middleware-bootstrapappphp)

```
use Finatto\Telemetry\WideEventContext;
use Finatto\Telemetry\WideEventMiddleware;

->withMiddleware(function (Middleware $middleware): void {
    $middleware->api(append: [WideEventMiddleware::class]);
    $middleware->web(append: [WideEventMiddleware::class]);
})
->withExceptions(function (Exceptions $exceptions): void {
    $exceptions->report(function (\Throwable $e): void {
        app(WideEventContext::class)->markException($e);
    });
})
```

Queue connection dedicada (`config/queue.php`)
----------------------------------------------

[](#queue-connection-dedicada-configqueuephp)

```
'connections' => [
    'telemetry-redis' => [
        'driver'      => 'redis',
        'connection'  => 'default',
        'queue'       => env('TELEMETRY_QUEUE_NAME', 'telemetry'),
        'retry_after' => 30,
    ],
],
```

E rode um worker isolado:

```
php artisan queue:work telemetry-redis --queue=telemetry
```

Adicionando contexto de negócio
-------------------------------

[](#adicionando-contexto-de-negócio)

Em qualquer ponto do ciclo da request:

```
use Finatto\Telemetry\Facades\Telemetry;

Telemetry::enrich([
    'tenant_id' => $tenant->id,
    'module'    => 'fleet',
    'plan'      => $tenant->plan,
]);
```

Os campos são mesclados recursivamente no payload e despachados no `terminate()` do middleware.

Exemplo de evento gerado
------------------------

[](#exemplo-de-evento-gerado)

```
{
  "event_id": "01925f3a-7c2d-...",
  "service": "finatto-admin",
  "environment": "production",
  "version": "1.4.2",
  "timestamp": "2026-05-04T14:22:31.847291Z",
  "payload": {
    "http":     { "method": "POST", "path": "/api/modules", "status_code": 201, "duration_ms": 138 },
    "auth":     { "user_id": "usr_456" },
    "business": { "tenant_id": "ten_789", "module": "fleet", "plan": "pro" }
  }
}
```

Sanitização
-----------

[](#sanitização)

`PayloadSanitizer` redige automaticamente chaves contendo qualquer substring de: `password`, `secret`, `token`, `authorization`, `credit_card`, `api_key` (case-insensitive, recursivo).

Testes
------

[](#testes)

```
composer install
vendor/bin/pest
vendor/bin/phpstan analyse
```

Licença
-------

[](#licença)

MIT

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance61

Regular maintenance activity

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/76708535?v=4)[Cesar Bosqueiro](/maintainers/cesarbosqueiro)[@cesarbosqueiro](https://github.com/cesarbosqueiro)

---

Top Contributors

[![cesarbosqueiro](https://avatars.githubusercontent.com/u/76708535?v=4)](https://github.com/cesarbosqueiro "cesarbosqueiro (9 commits)")

### Embed Badge

![Health badge](/badges/finatto-telemetry/health.svg)

```
[![Health](https://phpackages.com/badges/finatto-telemetry/health.svg)](https://phpackages.com/packages/finatto-telemetry)
```

###  Alternatives

[drupol/phpermutations

Generators and iterators, permutations and combinations.

83713.5k5](/packages/drupol-phpermutations)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
