Installation
Installation
composer require cboxdk/laravel-telemetry-ui
The package auto-registers. Point it at your backends:
TELEMETRY_UI_METRICS_URL=http://prometheus:9090
TELEMETRY_UI_TEMPO_URL=http://tempo:3200
TELEMETRY_UI_LOKI_URL=http://loki:3100
Using Mimir instead of vanilla Prometheus:
TELEMETRY_UI_METRICS_DRIVER=mimir
TELEMETRY_UI_METRICS_URL=http://mimir:8080
TELEMETRY_UI_METRICS_TENANT=team-apps # X-Scope-OrgID
Visit /telemetry-ui. Assets (ECharts bundle + CSS) are served by the
package itself — no publishing, no npm step.
Confirm the config actually reaches every backend:
php artisan telemetry-ui:check
It probes each configured connection and reports OK / FAIL, exiting
non-zero on failure — handy as a post-deploy healthcheck.
Authorization
Access is controlled by the viewTelemetryUi gate. Out of the box it only
allows the local environment. Open it up in a service provider:
Gate::define('viewTelemetryUi', fn (User $user): bool => $user->isDeveloper());
Publishing the config
php artisan vendor:publish --tag=telemetry-ui-config
See connections for the full config reference, including multiple named connections and per-connection headers.
Tuning
Sensible defaults ship for all of these; override via env when needed:
| Env var | Default | What it does |
|---|---|---|
TELEMETRY_UI_CACHE_TTL |
5 |
Seconds to cache backend GET responses, so a busy dashboard doesn't hammer the backends. 0 disables. |
TELEMETRY_UI_RETRIES |
2 |
Retries for transient connection blips. |
TELEMETRY_UI_THROTTLE |
120,1 |
Rate limit for the dashboard routes (maxAttempts,decayMinutes). Set empty to disable. |
TELEMETRY_UI_DETECTION_TTL |
300 |
Seconds to cache schema autodetection probes. |
TELEMETRY_UI_FLEET_TTL |
60 |
Seconds to cache the sidebar service/environment discovery. |
TELEMETRY_UI_ANNOTATIONS |
true |
Draw deploy/annotation markers on charts. |
TELEMETRY_UI_ANNOTATIONS_TTL |
30 |
Seconds to cache annotation lookups. |
A connection may also set its own cache key to override the global TTL. See
connections for the full reference.
Disabling entirely
TELEMETRY_UI_ENABLED=false makes the package inert: no routes, no gate, no
Livewire registrations. Useful for queue workers and environments where the
dashboard should not exist.