PHPackages                             nowo-tech/beacon-bundle - 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. nowo-tech/beacon-bundle

ActiveSymfony-bundle[Logging &amp; Monitoring](/categories/logging)

nowo-tech/beacon-bundle
=======================

Symfony client for self-hosted Symfony Beacon — Envelope ingest via configurable DSN (host, subdomain, port).

v1.6.9(today)03↑2900%MITPHPPHP &gt;=8.2 &lt;8.6CI passing

Since Jul 20Pushed todayCompare

[ Source](https://github.com/nowo-tech/BeaconBundle)[ Packagist](https://packagist.org/packages/nowo-tech/beacon-bundle)[ Docs](https://github.com/nowo-tech/BeaconBundle)[ RSS](/packages/nowo-tech-beacon-bundle/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (22)Versions (28)Used By (0)

Beacon Bundle
=============

[](#beacon-bundle)

[![CI](https://github.com/nowo-tech/BeaconBundle/actions/workflows/ci.yml/badge.svg)](https://github.com/nowo-tech/BeaconBundle/actions/workflows/ci.yml) [![Packagist Version](https://camo.githubusercontent.com/39eea8a4a143fc6ff437309a76df3ea9ca5413beded96358200c3013fe4c7cab/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e6f776f2d746563682f626561636f6e2d62756e646c652e7376673f7374796c653d666c6174)](https://packagist.org/packages/nowo-tech/beacon-bundle) [![Packagist Downloads](https://camo.githubusercontent.com/5c384dacc1e63ca1ad1dddbd4cd2357355b16d8142443ab55bb54a93eed72b00/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e6f776f2d746563682f626561636f6e2d62756e646c652e737667)](https://packagist.org/packages/nowo-tech/beacon-bundle) [![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE) [![PHP](https://camo.githubusercontent.com/3f99b197569aa2dcfbefff17ecc68d74098e7f929d8b52dc40f3a898f740eae1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f6c6f676f3d706870)](https://php.net) [![Symfony](https://camo.githubusercontent.com/0701ae1a8855b98dea0f1dc9d9025d6b0f9444a803559dc983614d044176348b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d372e34253230253743253230382e30253230253743253230382e312532422d3030303030303f6c6f676f3d73796d666f6e79)](https://symfony.com) [![GitHub stars](https://camo.githubusercontent.com/581b0a110f34f30559c963dc75f692b866dd9e76015b09f9e9028cf35099d503/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6e6f776f2d746563682f626561636f6e2d62756e646c652e7376673f7374796c653d736f6369616c266c6162656c3d53746172)](https://github.com/nowo-tech/BeaconBundle) [![Coverage](https://camo.githubusercontent.com/cd0704b56f1d56def350b6d0164316307bb2f47834225fd85443b6fb0059bc73/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f7665726167652d3130302532352d627269676874677265656e)](#tests-and-coverage)

> ⭐ **Found this useful?** Install from [Packagist](https://packagist.org/packages/nowo-tech/beacon-bundle) and give the repo a star on GitHub.

Symfony client for [Symfony Beacon](https://github.com/nowo-tech/symfony-beacon), the self-hosted error-tracking server from Nowo. BeaconBundle sends Envelope requests to any Beacon host described by a DSN and provides both manual APIs and an optional automatic exception listener.

[![FrankenPHP Friendly Worker Mode](docs/images/frankenphp-friendly.png)](docs/images/frankenphp-friendly.png)

This bundle is **FrankenPHP worker mode friendly**.

Features
--------

[](#features)

- DSN-driven ingest with host, optional port, public key, **required secret**, and project id
- Empty DSN disables reporting without changing application code
- Envelope transport to `POST /api/{project_id}/envelope/` with `X-Beacon-Auth` + envelope DSN auth
- Delivery modes: `transport.mode` `sync` (default), `async` (finalize on terminate), or `messenger` (queue)
- Versioned `User-Agent` (`beacon-bundle/{composer-version}`)
- Manual APIs through `BeaconClientInterface`
- Optional `kernel.exception` listener for uncaught HTTP exceptions
- `ignore_exceptions` / `ignore_paths` support for listener-side filtering (defaults align with Beacon host infra exclusions + Chrome DevTools probe)
- Configurable outbound context (`send.*`: stacktrace, request, user, PHP/Symfony versions, OS, …)
- Message events can include current stacktrace; frames may include source context when files are readable
- HTTP events attach request URL/method (and safe headers) when available
- Breadcrumbs (`addBreadcrumb`) and performance transactions (`captureTransaction`)
- Public **tags** API (`setTag` / `setTags`) and optional **`before_send`** scrubbing hook
- Opt-in Doctrine SQL + HttpClient request spans / breadcrumbs (`instrumentation.*`)
- Optional console / Messenger failure listeners and optional Monolog handler
- Optional automatic HTTP request transactions (`auto_http_transaction`)
- Precise timestamps (fractional Unix + ISO-8601 with microseconds)
- Local FrankenPHP demo covering messages, exceptions, full context, fingerprints, breadcrumbs, user, transactions / N+1, auto HTTP tx, Monolog, Messenger failures, and console errors

Installation
------------

[](#installation)

```
composer require nowo-tech/beacon-bundle
```

Symfony Flex registers the bundle, creates `config/packages/nowo_beacon.yaml`, and adds an empty `BEACON_DSN` entry to your env file.

Quick start
-----------

[](#quick-start)

Full walkthrough (create a Beacon project, copy the DSN, verify events): [Getting started](docs/GETTING_STARTED.md).

```
BEACON_DSN=https://PUBLIC_KEY:SECRET_KEY@localhost:9444/1
```

```
nowo_beacon:
    enabled: true
    dsn: '%env(string:default::BEACON_DSN)%'
    environment: '%kernel.environment%'
    release: null
    server_name: null
    verify_peer: true
    timeout: 5.0
    register_error_listener: true
    ignore_exceptions: []
    send:
        environment: true
        release: true
        server_name: true
        stacktrace: true
        request: true
        user: false          # opt-in; may include PII
        runtime: true        # PHP version
        framework: true      # Symfony version
        os: true
```

See [Configuration](docs/CONFIGURATION.md) for the full `send.*` reference.

For local self-signed HTTPS only:

```
when@dev:
    nowo_beacon:
        verify_peer: false
```

```
use Nowo\BeaconBundle\Client\BeaconClientInterface;

final class PaymentService
{
    public function __construct(private readonly BeaconClientInterface $beacon)
    {
    }

    public function charge(): void
    {
        try {
            // ...
        } catch (\Throwable $exception) {
            $this->beacon->captureException($exception, ['order_id' => 42]);
            throw $exception;
        }
    }
}
```

DSN format
----------

[](#dsn-format)

```
{scheme}://{public_key}:{secret}@{host}[:{port}]/{project_id}

```

ExampleMeaning`https://KEY:SECRET@localhost:9444/1`Local HTTPS Beacon on port `9444`, project `1``https://KEY:SECRET@errors.example.com/3`Hosted Beacon over default HTTPS port`http://KEY:SECRET@beacon.internal:9081/2`Internal HTTP Beacon (Docker ingest)Generate keys in Beacon project settings, or run `make seed` in the `symfony-beacon` repository to create demo data and print a DSN (includes secret).

FrankenPHP worker
-----------------

[](#frankenphp-worker)

The bundled demo uses FrankenPHP. Default **`FRANKENPHP_MODE=worker`**; set `classic` for `Caddyfile.dev` (hot-reload friendly). See [Demo/FrankenPHP](docs/DEMO-FRANKENPHP.md).

Documentation
-------------

[](#documentation)

- [Installation](docs/INSTALLATION.md)
- [Configuration](docs/CONFIGURATION.md)
- [Usage](docs/USAGE.md)
- [Contributing](docs/CONTRIBUTING.md)
- [Code of Conduct](CODE_OF_CONDUCT.md)
- [Changelog](docs/CHANGELOG.md)
- [Upgrading](docs/UPGRADING.md)
- [Release](docs/RELEASE.md)
- [Security](docs/SECURITY.md)
- [Engram](docs/ENGRAM.md)
- [Spec-driven development](docs/SPEC-DRIVEN-DEVELOPMENT.md)
- [GitHub Spec Kit](docs/SPEC-KIT.md)

### Additional documentation

[](#additional-documentation)

- [Getting started (Symfony Beacon + bundle)](docs/GETTING_STARTED.md)
- [Demo/FrankenPHP](docs/DEMO-FRANKENPHP.md)
- [GitHub CI](docs/GITHUB_CI.md)
- [Performance](docs/PERFORMANCE.md)

Tests and coverage
------------------

[](#tests-and-coverage)

Run the test suite with:

```
composer test
composer test-coverage
```

or, in the Docker-based maintainer workflow:

```
make test
make test-coverage
make test-coverage-100
```

Coverage (Lines): **100.00%** (measured with `make test-coverage` / PCOV).

SuiteStatusPHP unit + integration100.00% LinesTypeScript / PythonN/A (no frontend or Python in this bundle)

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance100

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 87.2% 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 ~0 days

Total

27

Last Release

0d ago

PHP version history (2 changes)v1.0.0PHP &gt;=8.1 &lt;8.6

v1.0.1PHP &gt;=8.2 &lt;8.6

### Community

Maintainers

![](https://www.gravatar.com/avatar/e7947bfc3f2ce9574a18a2c60f3d95b5d1b0740e65dc929332c92f1df21f75ab?d=identicon)[HecFranco](/maintainers/HecFranco)

---

Top Contributors

[![HecFranco](https://avatars.githubusercontent.com/u/24323276?v=4)](https://github.com/HecFranco "HecFranco (34 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")[![actions-user](https://avatars.githubusercontent.com/u/65916846?v=4)](https://github.com/actions-user "actions-user (2 commits)")

---

Tags

dsnenvelopeerror-trackingfrankenphpmonitoringphpsymfonysymfony-bundlesymfonymonitoringdsnSymfony Bundleerror-trackingbeaconenvelope

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/nowo-tech-beacon-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/nowo-tech-beacon-bundle/health.svg)](https://phpackages.com/packages/nowo-tech-beacon-bundle)
```

###  Alternatives

[web-auth/webauthn-framework

FIDO2/Webauthn library for PHP and Symfony Bundle.

515100.5k3](/packages/web-auth-webauthn-framework)[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

85036.3k](/packages/flow-php-flow)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M608](/packages/shopware-core)

PHPackages © 2026

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