dragon-code/request-tracker
A Laravel package for tracking incoming HTTP requests. It captures request details, logs activity, and helps you inspect traffic through a simple, configurable setup, making it easy to add request auditing and monitoring to your application.
Architecture fit. dragon-code/request-tracker targets a cross-cutting observability concern: correlating and timing HTTP calls between Laravel services. Architecturally it belongs at the framework boundary — an HTTP-client middleware for outbound calls and a server middleware for inbound requests — which is the correct seam for this class of concern. It does not replace an APM or distributed-tracing backend; expect it to be a correlation-ID + timing layer rather than full span/trace semantics. Fit is strongest for a Laravel-centric service fleet using the built-in Http client, and weakest in polyglot estates or where OpenTelemetry is already the standard. Release 1.5.0 does not change this positioning: it consolidates the two primitives that matter (header handling via TrackerHeader, ID generation via TrackerUuid) into explicit classes, which is a modest structural improvement — the correlation contract is now a named, inspectable object rather than inline logic, which makes it easier to review and easier to override.
Integration feasibility. Laravel package conventions make the install path shallow: Composer require, package auto-discovery, optional config/middleware publication, and registration in the HTTP kernel or Http::macro/middleware stack. With no dependents and minimal stars, there is still no ecosystem evidence of production use; every integration assumption must be verified against source and a lab spike. 1.5.0 is additive and minor-version semver, so upgrade cost is low, but two things newly warrant verification: (a) whether TrackerHeader initialization means the header name, casing, or default emission behavior changed, and (b) whether making TrackerUuid "dynamic" altered the default ID format, length, version, or entropy. Either could break log parsers, dashboards, or correlation with already-stored IDs — silently, since observability failures rarely throw.
Technical risk.
TrackerHeader class is exactly where an unvetted header could be propagated to third parties; audit which headers it now reads and forwards.Key questions.
traceparent/tracestate, a custom header, or both — and can it interoperate with an OTel collector? Is the TrackerHeader name configurable so we can align to W3C naming?TrackerUuid — injectable generator, config-driven format, or changed default? Is the default ID still a stable RFC 4122 v4, and is the format guaranteed across versions?TrackerHeader initialized eagerly at boot, per request, or on outbound calls only — and does initialization change the default header name or add headers not previously emitted?Stack fit. Assume a Laravel 10/11, PHP 8.2+ fleet using the framework HTTP client. The package slots in as middleware plus client hooks; it should not require domain-code changes. If the estate already runs OpenTelemetry or a commercial APM, treat this as a complement or replacement candidate, not an additive layer — decide explicitly which system owns the correlation ID. 1.5.0 makes that decision cheaper to execute: if TrackerUuid is genuinely injectable, we can bind our own generator so the package emits IDs aligned with the system of record instead of competing with it.
Migration path. Adopt behind a feature flag and a thin internal abstraction (e.g., a TraceContext service or config toggle) so the package can be swapped for OTel instrumentation without touching call sites. 1.5.0 strengthens the case for two specific seams: bind the UUID generator and pin the header name in our own config, so the new dynamism is used deliberately rather than inherited by default. Vendoring or forking should remain an accepted option from day one.
Compatibility. Validate in a lab against the actual matrix: Laravel minors in use, PHP 8.2/8.3, Octane, queue workers, and Guzzle/HTTP-client middleware order relative to auth, retry, and logging middleware. Add two checks specific to 1.5.0: a source-level diff of 1.4 → 1.5 confirming no change to default header name or default UUID format, and a mixed-version interop test (1.4 service talking to 1.5 service, both directions) since real rollouts are staggered. Confirm no collision with existing correlation-ID or logging middleware that also mutates headers, and verify behavior under Http::fake().
Sequencing.
TrackerHeader initializes), redact list, retention.Maintenance. Highest ongoing concern. Single maintainer, minimal adoption, and no dependents imply we may become the de facto maintainer. 1.5.0 is a positive maintenance signal but does not change the structural risk — both changes landed from the same author. Pin exact versions, vendor the dependency, and assign an internal owner. Budget a small recurring allowance for upstream patching and a fork contingency.
Support. Community-only, no SLA, thin documentation likely. The runbook must now treat two things as declared operational contract rather than implementation detail: the header name and the UUID format. Because 1.5.0 makes both more configurable, configuration drift across services becomes a realistic support burden — document the canonical values and enforce them in review. Source-level understanding by at least one engineer is a prerequisite, not a nice-to-have.
Scaling. Cost scales with request volume on two axes: in-process middleware overhead (small but non-zero per hop) and telemetry volume if traces are stored. Sampling and retention policy must be defined before broad rollout; high-fan-out service graphs will amplify both. Confirm the storage/export path is designed for sustained throughput, not just dev traffic.
Failure modes.
Ramp-up. The API surface is small, so engineer ramp-up is measured in days, not weeks — roughly 1–2 days for a Laravel engineer to instrument a service pair, plus an additional half-day to diff 1.4 → 1.5 and run the mixed-version check, plus time for the OTel comparison and governance review. The real ramp-up cost remains organizational: agreeing on trace-context ownership, redaction rules, and which system is the source of truth. Given the package's maturity signals, I would still fund this as a time-boxed evaluation with a fork-ready posture, not a committed platform dependency. 1.5.0 is a useful increment — it makes the correlation contract configurable and therefore more compatible with an OTel-aligned scheme — but it is not a reason to promote the package to standard; promote only if the spike demonstrates measurable value over OpenTelemetry at comparable cost.
How can I help you explore Laravel packages today?