dbstudios/prometheus-client
Lightweight Prometheus client for PHP. Create a CollectorRegistry, choose a storage adapter (Redis, Filesystem, APCu), then register and use counters, gauges, and histograms. Retrieve collectors by name with typed helpers for safer access.
CollectorRegistry + adapter) and requires no Laravel-specific dependencies, reducing integration risk.Counter, Gauge) and manual instrumentation in business logic (e.g., middleware, service layers). This contrasts with Laravel’s convention-over-configuration approach but aligns with Prometheus’s explicit metric design.CollectorRegistry in AppServiceProvider).Illuminate\Http\Middleware\HandleIncomingRequest to track request counts.CollectorRegistry instance./metrics) using the TextRenderer.scrape_configs in prometheus.yml).CollectorRegistry as a singleton).QueueJobCollector).apc.enable_cli=1 in php.ini.Counter for request counts, Histogram for latency, Gauge for active connections.order_processing_time, inventory_levels).job:failed) for richer telemetry.METRICS.md file to prevent drift. Use tools like OpenTelemetry’s semantic conventions for consistency.CollectorRegistry::collect() to debug in-memory state./metrics endpoint is:
requests_total across Laravel instances).scrape_interval tuned to instance count.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Prometheus server down | Metrics uncollected | Use local storage (filesystem) as fallback; alert on scrape failures. |
| Redis/filesystem adapter failure | Metrics lost | Implement multi-adapter fallback (e.g., primary Redis + secondary filesystem). |
| PHP process crash (APCu) | Transient metric loss | Use Redis for critical metrics; accept APCu limitations for non-critical |
How can I help you explore Laravel packages today?