m6web/statsd-request-headers-bundle
A Symfony bundle that emits StatsD metrics for incoming HTTP request headers, so you can track header presence, sizes, and distributions across your application. It hooks into the m6web StatsD ecosystem to instrument requests with minimal configuration.
Authorization, Cookie, X-Forwarded-For, Referer, and tenant identifiers routinely land in headers. A PM decision this informs is whether header-derived metrics require an allowlist of non-sensitive headers plus hashing/salt for anything identifying — a policy this package still does not enforce./orders/{id} vs /orders/12345). Any adoption decision must pair with an explicit tag-cardinality cap and a route-normalization rule. The "optim names" change hints at tag-budget pressure but ships no documented guardrail, so that cost still lands on your platform team.Criteria for adoption (all must hold):
m6web/statsd client already in the stack — this is a Symfony bundle wired through the DI container and kernel events, so it has no path into Laravel beyond reading it as a design reference.kernel.request/kernel.response and emit tagged metrics (now including route), and you intend to fork or reimplement, not composer require.When to look elsewhere (i.e., almost always):
For executives: Still not recommended for adoption. A new v1.1.0 exists — described only as "optimise event (add route and optim names)" — but it is a single maintenance release from a package that previously had no activity since September 2016, with zero stars and zero dependents. One commit does not create a support commitment, a security response process, or a compatibility guarantee. The underlying idea (tagging request metrics with header- and route-derived attributes) is sound and already reflected in our observability roadmap; the code itself still carries unquantified maintenance, security, and compliance risk if placed on the request path.
For engineering: Treat it as a ~50-line reference pattern, not a dependency. The v1.1.0 change is directionally correct and worth reading — adding route as a dimension and tightening tag names is exactly the cardinality-aware thinking the original lacked — but the four non-negotiables remain ours to build: an explicit allowlist of non-sensitive headers, a route-normalization + cardinality cap on tag values, redaction of Authorization/Cookie, and unit tests asserting sensitive headers can never be emitted. Estimated effort: 1–2 days, versus indefinite ownership of an unmaintained fork.
Recommendation: Keep as rejected — reference only, and correct the record in the rejection note: version pin is now v1.1.0, not "no release since 2016," so the rationale must rest on maintenance posture and architecture mismatch rather than inactivity. Log the pattern (including the route-dimension refinement) in our observability design notes, assign the middleware work to the platform backlog, and set a low-cost watch: revisit only if the package shows sustained releases plus a Laravel-viable distribution path — neither of which a single housekeeping commit establishes.
How can I help you explore Laravel packages today?