Skip to content

Commit bf84ee9

Browse files
committed
Release v1.6.8: configurable ignore_paths for HTTP noise.
Skip profiler/WDT/build/assets/health and Chrome DevTools probes on the exception listener and auto HTTP transactions; set ignore_paths: [] to disable.
1 parent 80806e9 commit bf84ee9

20 files changed

Lines changed: 393 additions & 143 deletions

File tree

.symfony/recipe/nowo-tech/beacon-bundle/1.0/config/packages/nowo_beacon.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ nowo_beacon:
2525
# doctrine: false # requires doctrine/dbal
2626
# http_client: false
2727
ignore_exceptions: []
28+
# ignore_paths defaults: /_profiler, /_wdt, /build, /assets, /health, Chrome DevTools probe; set [] to disable:
29+
# ignore_paths: []
2830
# Per-category outbound context (user is opt-in; may include PII):
2931
send:
3032
environment: true

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ This bundle is **FrankenPHP worker mode friendly**.
1919
- Versioned `User-Agent` (`beacon-bundle/{composer-version}`)
2020
- Manual APIs through `BeaconClientInterface`
2121
- Optional `kernel.exception` listener for uncaught HTTP exceptions
22-
- `ignore_exceptions` support for listener-side filtering
22+
- `ignore_exceptions` / `ignore_paths` support for listener-side filtering (defaults align with Beacon host infra exclusions + Chrome DevTools probe)
2323
- Configurable outbound context (`send.*`: stacktrace, request, user, PHP/Symfony versions, OS, …)
2424
- Message events can include current stacktrace; frames may include source context when files are readable
2525
- HTTP events attach request URL/method (and safe headers) when available

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383
},
8484
"config": {
8585
"sort-packages": true,
86-
"root-version": "1.6.7",
86+
"root-version": "1.6.8",
8787
"allow-plugins": {
8888
"phpstan/extension-installer": true
8989
},

composer.lock

Lines changed: 118 additions & 118 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/symfony8/composer.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/symfony8/config/reference.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,9 +1141,10 @@
11411141
* },
11421142
* register_error_listener?: bool|Param, // When true, register a kernel.exception listener that reports uncaught exceptions. // Default: true
11431143
* ignore_exceptions?: list<scalar|Param|null>,
1144+
* ignore_paths?: list<scalar|Param|null>,
11441145
* register_console_listener?: bool|Param, // When true, report uncaught console command errors (ConsoleEvents::ERROR). // Default: true
11451146
* register_messenger_listener?: bool|Param, // When true and symfony/messenger is installed, report WorkerMessageFailedEvent failures that will not retry. // Default: true
1146-
* auto_http_transaction?: bool|Param, // When true, send a performance transaction for each main HTTP request (skips profiler/health/build). // Default: false
1147+
* auto_http_transaction?: bool|Param, // When true, send a performance transaction for each main HTTP request (skips ignore_paths). // Default: false
11471148
* before_send?: scalar|Param|null, // Optional service id of an invokable that receives the event/transaction payload array and returns the mutated array, or null to drop the send. // Default: null
11481149
* instrumentation?: array{ // Opt-in automatic spans / breadcrumbs for Doctrine SQL and HttpClient requests.
11491150
* doctrine?: bool|Param, // When true and doctrine/dbal is installed, record SQL query spans and breadcrumbs. // Default: false

docs/CHANGELOG.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
77
## Table of contents
88

99
- [[Unreleased]](#unreleased)
10+
- [[1.6.8] - 2026-07-30](#168-2026-07-30)
11+
- [Added](#added)
12+
- [Changed](#changed)
1013
- [[1.6.7] - 2026-07-29](#167-2026-07-29)
1114
- [Changed](#changed)
1215
- [[1.6.6] - 2026-07-28](#166-2026-07-28)
@@ -80,6 +83,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
8083

8184
## [Unreleased]
8285

86+
## [1.6.8] - 2026-07-30
87+
88+
### Added
89+
90+
- **`ignore_paths`** config for the HTTP exception listener and auto HTTP transactions (`IgnoredRequestPath`). Defaults reuse Beacon host infra exclusions (`/_profiler`, `/_wdt`, `/build`, `/assets`, `/health`) plus Chrome DevTools Appspecific probe `/.well-known/appspecific/com.chrome.devtools.json` (set `ignore_paths: []` to disable).
91+
92+
### Changed
93+
94+
- `auto_http_transaction` skip list is driven by `ignore_paths` (same defaults as before for profiler / WDT / health / build, plus `/assets` and the Chrome DevTools probe).
95+
- README / recipe note `ignore_paths` alongside `ignore_exceptions`.
96+
8397
## [1.6.7] - 2026-07-29
8498

8599
### Changed
@@ -365,7 +379,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
365379
- Expanded documentation set for installation, configuration, usage, release, security, performance, Engram, and Spec Kit workflows.
366380
- Demo routes covering message capture, manual exception capture, listener-triggered exceptions, ignored exceptions, fingerprints, and runtime status.
367381

368-
[Unreleased]: https://github.com/nowo-tech/BeaconBundle/compare/v1.6.7...HEAD
382+
[Unreleased]: https://github.com/nowo-tech/BeaconBundle/compare/v1.6.8...HEAD
383+
[1.6.8]: https://github.com/nowo-tech/BeaconBundle/compare/v1.6.7...v1.6.8
369384
[1.6.7]: https://github.com/nowo-tech/BeaconBundle/compare/v1.6.6...v1.6.7
370385
[1.6.6]: https://github.com/nowo-tech/BeaconBundle/compare/v1.6.5...v1.6.6
371386
[1.6.5]: https://github.com/nowo-tech/BeaconBundle/compare/v1.6.4...v1.6.5

docs/CONFIGURATION.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ nowo_beacon:
6060
doctrine: false
6161
http_client: false
6262
ignore_exceptions: []
63+
ignore_paths:
64+
- '/_profiler'
65+
- '/_wdt'
66+
- '/build'
67+
- '/assets'
68+
- '/health'
69+
- '/.well-known/appspecific/com.chrome.devtools.json'
6370
monolog_handler:
6471
enabled: false
6572
level: error
@@ -88,11 +95,12 @@ nowo_beacon:
8895
| `register_error_listener` | `true` | Registers the automatic `kernel.exception` listener. |
8996
| `register_console_listener` | `true` | Reports uncaught console command errors. |
9097
| `register_messenger_listener` | `true` | Reports Messenger `WorkerMessageFailedEvent` when the message will not retry (requires `symfony/messenger`). |
91-
| `auto_http_transaction` | `false` | Send a performance transaction for each main HTTP request (skips `/_profiler`, `/health`, `/build`). |
98+
| `auto_http_transaction` | `false` | Send a performance transaction for each main HTTP request (skips `ignore_paths`). |
9299
| `before_send` | `null` | Optional **service id** of an invokable `(array $event): ?array`. Return a mutated payload, or `null` to drop the send. If the hook throws, the event is dropped (fail soft). |
93100
| `instrumentation.doctrine` | `false` | When true and `doctrine/dbal` is installed, register a DBAL middleware that records `db.sql.query` spans and breadcrumbs (SQL literals scrubbed / truncated). |
94101
| `instrumentation.http_client` | `false` | When true, decorate `http_client` to record `http.client` spans and breadcrumbs. Beacon Envelope ingest URLs are skipped. |
95102
| `ignore_exceptions` | `[]` | List of exception FQCNs skipped by HTTP/console/Messenger automatic listeners. |
103+
| `ignore_paths` | `IgnoredRequestPath::DEFAULTS` | HTTP path prefixes skipped by the exception listener and auto HTTP transactions (trailing slashes ignored). Defaults: `/_profiler`, `/_wdt`, `/build`, `/assets`, `/health`, Chrome DevTools Appspecific probe — aligned with Symfony Beacon security/PWA/site-backup/setup exclusions. Replacing the list removes defaults; use `[]` to report every path. |
96104
| `monolog_handler.enabled` | `false` | Register `BeaconMonologHandler` and prepend it into `monolog.handlers` as `type: service` (requires `monolog/monolog` + MonologBundle). |
97105
| `monolog_handler.level` | `error` | Minimum Monolog level forwarded to Beacon. |
98106

@@ -137,6 +145,7 @@ nowo_beacon:
137145

138146
- Empty `dsn` means the bundle wires `NullBeaconClient`.
139147
- `ignore_exceptions` only affects the automatic listener. Manual `captureException()` calls still send unless your own code avoids them.
148+
- `ignore_paths` only affects the HTTP exception listener and `auto_http_transaction`. Console / Messenger listeners are unaffected.
140149
- `timeout` applies to the synchronous HTTP request path.
141150
- `verify_peer: false` also disables host verification in the underlying HTTP client and should stay limited to local dev.
142151
- Enabling `send.user` transmits account identifiers to your Beacon host; align with GDPR / privacy policy and legal pages on the Beacon UI.

docs/UPGRADING.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
- [Upgrading from 1.6.4 to 1.6.5](#upgrading-from-164-to-165)
4444
- [Upgrading from 1.6.5 to 1.6.6](#upgrading-from-165-to-166)
4545
- [Upgrading from 1.6.6 to 1.6.7](#upgrading-from-166-to-167)
46+
- [Upgrading from 1.6.7 to 1.6.8](#upgrading-from-167-to-168)
4647

4748
## First install -> 1.0.x
4849

@@ -175,7 +176,7 @@ nowo_beacon:
175176
### Behaviour
176177

177178
- With default `register_messenger_listener: true`, final Messenger failures (no retry) are reported when `symfony/messenger` is installed. Disable if you do not want worker failures in Beacon.
178-
- `auto_http_transaction` stays **off** by default. Enable only if you want one transaction per main request (routes under `/_profiler`, `/_wdt`, `/health/`, `/build` are skipped).
179+
- `auto_http_transaction` stays **off** by default. Enable only if you want one transaction per main request (`ignore_paths` are skipped; defaults cover profiler / WDT / build / assets / health / Chrome DevTools).
179180
- `ignore_exceptions` also applies to the Messenger failure listener.
180181

181182
### Compatibility
@@ -319,3 +320,13 @@ Maintainer / demo tooling only. **No consumer API or config changes.**
319320
- Demo recipes invoke compose via the shell so a local `demo/symfony8/docker/` directory does not cause `make: docker: Permission denied`.
320321
- Monorepo `update-deps` Makefile includes are optional (`-include`) so a standalone clone / GitHub Actions checkout does not break `make`.
321322

323+
## Upgrading from 1.6.7 to 1.6.8
324+
325+
Backward compatible for typical apps; default noise filtering is slightly broader.
326+
327+
- New optional config: `ignore_paths` (defaults listed in `CONFIGURATION.md` / `IgnoredRequestPath::DEFAULTS`).
328+
- The **HTTP exception listener** now skips those paths (previously only `auto_http_transaction` had a hard-coded skip list).
329+
- `auto_http_transaction` uses the same `ignore_paths` list (adds `/assets` and the Chrome DevTools Appspecific probe vs the old hard-coded set).
330+
- To report every path again: `ignore_paths: []`.
331+
- Replacing the list removes the defaults (same pattern as other array nodes).
332+

docs/USAGE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ nowo_beacon:
175175
auto_http_transaction: true
176176
```
177177

178-
Profiler, WDT, `/health/*`, and `/build*` paths are skipped. Prefer this for coarse request timing; use `captureTransaction()` for finer spans.
178+
Paths in `ignore_paths` are skipped (defaults: `/_profiler`, `/_wdt`, `/build`, `/assets`, `/health`, Chrome DevTools probe). Prefer this for coarse request timing; use `captureTransaction()` for finer spans.
179179

180180
## Monolog
181181

0 commit comments

Comments
 (0)