PHPackages                             haoc/opentelemetry-laravel - 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. [Logging &amp; Monitoring](/categories/logging)
4. /
5. haoc/opentelemetry-laravel

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

haoc/opentelemetry-laravel
==========================

HAOC OpenTelemetry instrumentation for Laravel — traces, logs, user identity, and infrastructure tracking

v2.1.0(1mo ago)013proprietaryPHPPHP ^8.2

Since Apr 19Pushed 1mo agoCompare

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

READMEChangelogDependencies (12)Versions (6)Used By (0)

haoc/opentelemetry-laravel
==========================

[](#haocopentelemetry-laravel)

Pacote de instrumentação OpenTelemetry para aplicações Laravel do HAOC.

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

[](#instalação)

```
composer require haoc/opentelemetry-laravel
```

O package auto-discovery do Laravel registra o service provider automaticamente.

> **Desenvolvimento local**: Se precisar testar alterações antes de publicar, use um repositório `path` no `composer.json`:
>
> ```
> {
>   "repositories": [{ "type": "path", "url": "../haoc-opentelemetry/packages/laravel" }],
>   "require": { "haoc/opentelemetry-laravel": "*" }
> }
> ```

Configuração
------------

[](#configuração)

Publique o config (opcional):

```
php artisan vendor:publish --tag=haoc-otel-config
```

Variáveis de ambiente:

VariávelDefaultDescrição`OTEL_SERVICE_NAME``APP_NAME`Nome do serviço no SigNoz`OTEL_ENVIRONMENT``APP_ENV`Ambiente (local/dev/prod)`OTEL_EXPORTER_OTLP_ENDPOINT``http://host.docker.internal:4318`Endpoint do OTLP CollectorMiddleware
----------

[](#middleware)

Registre o middleware `TraceRequest` no Kernel ou nas rotas:

```
// bootstrap/app.php (Laravel 11+)
->withMiddleware(function (Middleware $middleware) {
    $middleware->append(\Haoc\OpenTelemetry\Middleware\TraceRequest::class);
})

// Ou no Kernel.php (Laravel 10)
protected $middleware = [
    \Haoc\OpenTelemetry\Middleware\TraceRequest::class,
];
```

### O que o middleware captura

[](#o-que-o-middleware-captura)

- `http.method`, `http.route`, `http.url`, `http.status_code`, `http.duration_ms`
- **User Identity**: `user.id`, `user.type`, `user.role` e opcionais; `user.email` é opt-in
- **Infraestrutura**: `X-Forwarded-For`, `X-Real-IP`, `Via`, `network.hop_count`
- **Baggage do Frontend**: atributos `page.*`, `browser.*`, `device.*`, `app.*`
- **Query/Route/Body params** (com redação de campos sensíveis)

Logging
-------

[](#logging)

Adicione o canal OTLP na config de logging:

```
// config/logging.php
'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['single', 'otlp'],
    ],
    'otlp' => [
        'driver' => 'custom',
        'via' => \Haoc\OpenTelemetry\Logging\OtelLogChannelFactory::class,
        'level' => env('LOG_LEVEL', 'debug'),
    ],
],
```

Docker
------

[](#docker)

No `docker-compose.yml`, adicione a rede do SigNoz:

```
services:
  app:
    environment:
      - OTEL_SERVICE_NAME=meu-servico
      - OTEL_EXPORTER_OTLP_ENDPOINT=http://signoz-otel-collector:4318
      - OTEL_ENVIRONMENT=${APP_ENV-local}
    networks:
      - app
      - signoz

networks:
  signoz:
    name: signoz-net
    external: true
```

Atributos Capturados (Spans)
----------------------------

[](#atributos-capturados-spans)

### Request (notação de ponto)

[](#request-notação-de-ponto)

AtributoExemplo`http.method``GET``http.route``/api/pacientes``http.status_code``200``http.duration_ms``45``query.search``Maria``query.page``1``body.name``João``body.password``[REDACTED]``params.id``42``response.data.total``10`### User Identity (do Auth Laravel)

[](#user-identity-do-auth-laravel)

AtributoExemplo`user.id``PAC12345``user.type``authenticated``user.role``operator``user.email``maria@email.com` (somente com `otel.identity.include_email=true`)### Infraestrutura / Hops

[](#infraestrutura--hops)

AtributoExemplo`http.forwarded_for``10.0.0.1, 172.16.0.1``http.real_ip``10.0.0.1``network.hop_count``2`### Baggage do Frontend (W3C)

[](#baggage-do-frontend-w3c)

AtributoOrigem`page.route``@haocruz/opentelemetry-web``browser.name``@haocruz/opentelemetry-web``device.type``@haocruz/opentelemetry-web``user.id``@haocruz/opentelemetry-web`Dados Sensíveis (Redação Automática)
------------------------------------

[](#dados-sensíveis-redação-automática)

Campos automaticamente redatados como `[REDACTED]`:

`password`, `senha`, `secret`, `token`, `access_token`, `refresh_token`, `authorization`, `db_password`, `network_password`, `tasy_password`

Licença
-------

[](#licença)

MIT

---

Publicação (Packagist)
----------------------

[](#publicação-packagist)

Este pacote é publicado no [Packagist](https://packagist.org/packages/haoc/opentelemetry-laravel) a partir de um subtree split do monorepo.

### Passo a passo para publicar uma nova versão

[](#passo-a-passo-para-publicar-uma-nova-versão)

```
# 1. No monorepo, commite suas alterações normalmente
cd /path/to/haoc-opentelemetry
git add -A && git commit -m "feat: descrição da alteração"
git push origin master

# 2. Atualize o subtree split para a branch dedicada
git subtree split --prefix=packages/laravel -b laravel-split

# 3. Push para o repositório dedicado do Packagist
git push laravel-origin laravel-split:master --force

# 4. Crie a tag de versão e envie
git tag vX.Y.Z laravel-split
git push laravel-origin vX.Y.Z
```

### Configuração inicial (já feita)

[](#configuração-inicial-já-feita)

O remote `laravel-origin` aponta para `git@github.com:japostulo/opentelemetry-laravel.git`.

Para verificar: `git remote -v | grep laravel`

### Versionamento

[](#versionamento)

Siga [SemVer](https://semver.org/lang/pt-BR/):

- **patch** (v1.0.1): correções de bugs
- **minor** (v1.1.0): novas funcionalidades retrocompatíveis
- **major** (v2.0.0): breaking changes

O Packagist lê as tags git automaticamente — o campo `version` no `composer.json` é ignorado quando há tags.

### Atualizando nas aplicações consumidoras

[](#atualizando-nas-aplicações-consumidoras)

```
composer update haoc/opentelemetry-laravel
```

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance91

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~13 days

Total

5

Last Release

44d ago

Major Versions

1.2.0 → v2.0.02026-05-28

### Community

Maintainers

![](https://www.gravatar.com/avatar/81e17c83581e15b57a3807c51089f08574dff9a953099a2f2ae2f5127127512c?d=identicon)[japostulo](/maintainers/japostulo)

---

Top Contributors

[![japostulo](https://avatars.githubusercontent.com/u/50240866?v=4)](https://github.com/japostulo "japostulo (7 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/haoc-opentelemetry-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/haoc-opentelemetry-laravel/health.svg)](https://phpackages.com/packages/haoc-opentelemetry-laravel)
```

###  Alternatives

[keepsuit/laravel-opentelemetry

OpenTelemetry integration for laravel

167558.4k1](/packages/keepsuit-laravel-opentelemetry)[drupal/core-dev

require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.

2022.6M350](/packages/drupal-core-dev)[open-telemetry/opentelemetry-auto-laravel

OpenTelemetry auto-instrumentation for Laravel

592.7M9](/packages/open-telemetry-opentelemetry-auto-laravel)[open-telemetry/symfony-sdk-bundle

OpenTelemetry Symfony integration

12107.8k5](/packages/open-telemetry-symfony-sdk-bundle)[duncanmcclean/statamic-cargo

Comprehensive e-commerce addon for Statamic. Build bespoke e-commerce sites without the complexity.

3518.3k](/packages/duncanmcclean-statamic-cargo)

PHPackages © 2026

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