m6web/statsd-prometheus-bundle
Symfony bundle that bridges StatsD metrics to Prometheus: it collects counters, gauges and timings via the m6web/statsd library and exposes them in Prometheus exposition format for scraping, typically through a /metrics endpoint.
promphp/prometheus_client_php ecosystem, or (c) go vendor-neutral with OpenTelemetry. This package is the "adopt small OSS" option, and evaluating it is really evaluating that third path.Adopt-consider criteria — all should hold:
*Bundle, DI extension, kernel event hooks). There is no Laravel service provider; on Laravel you'd be writing your own integration anyway, which erases most of the value.Look elsewhere when:
promphp/prometheus_client_php, or an OpenTelemetry SDK. Don't port a Symfony bundle to save a day.To executives: This is a small, MIT-licensed utility that lets our Symfony services send tagged metrics into Prometheus. It is not a platform bet and should not be funded as one. The realistic decision is "fork a 200-line glue library and own it" versus "build the same thing in-house" — roughly comparable cost, slightly better starting point if we're already on StatsD and Pushgateway. The risk is maintenance: last release 2023, three stars, no downstream dependents, so upstream support is effectively zero. Recommend it only as a tactical bridge with a named owner and an expiry date, paired with a standing evaluation of OpenTelemetry as the strategic target.
To engineering: The value is the tag-format-to-Prometheus mapping and the Symfony wiring — you skip the boilerplate of a StatsD client plus Pushgateway push. The cost is that you inherit an unmaintained dependency: pin to a specific commit, vendor or fork it into our namespace, add our own tests around the emit path, and wrap it behind an internal metrics interface so we can swap to OpenTelemetry without touching call sites. Non-negotiable: emission must be non-blocking and failure-tolerant, and label cardinality gets reviewed like any other schema change. If we're on Laravel rather than Symfony, stop here — the integration work exceeds the value.
How can I help you explore Laravel packages today?