qwerkon / code-usage
Laravel telemetry package that tracks which controllers, jobs, events and commands have run.
1.0.1
2026-01-22 10:56 UTC
Requires
- php: ^8.4
- illuminate/cache: ^10.0|^11.0|^12.0
- illuminate/console: ^10.0|^11.0|^12.0
- illuminate/contracts: ^10.0|^11.0|^12.0
- illuminate/events: ^10.0|^11.0|^12.0
- illuminate/http: ^10.0|^11.0|^12.0
- illuminate/log: ^10.0|^11.0|^12.0
- illuminate/queue: ^10.0|^11.0|^12.0
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-02-22 11:14:56 UTC
README
Laravel package that ships the runtime telemetry tooling used detect which controllers, jobs, events, listeners and commands actually run in production.
Installation
composer require qwerkon/code-usage
The package is auto-discovered but you can manually register Qwerkon\CodeUsage\Providers\CodeUsageServiceProvider in config/app.php if needed.
Configuration
Publish the default configuration when you first install the package:
php artisan vendor:publish --tag=code-usage-config
Key settings:
code_usage.enabled– master switch (set viaCODE_USAGE_ENABLED).code_usage.sample_rate– float between 0.0 and 1.0 to sample hits.code_usage.throttle_per_minute– maximum records per symbol per minute.code_usage.include_namespaces/exclude_namespaces– limit what symbols are tracked.code_usage.meta_enabled– whether to persist contextual metadata.code_usage.queue_connection/queue_name– configure whereFlushCodeUsageBatchJobruns.
Runtime
When enabled the package:
- Registers the
track-code-usagemiddleware to log each routed controller action. - Swaps the event dispatcher to capture event/listener invocations.
- Hooks
JobProcessing,JobProcessed,CommandStarting,CommandFinishedto track jobs and commands. - Buffers hits per request and flushes via
FlushCodeUsageBatchJob(with a sync fallback).
The buffer uses code_usage_hits/code_usage_symbols/code_usage_meta tables defined in the bundled migrations.
Artisan helpers
php artisan code-usage:report– prints top hitters and “never seen” symbols per kind.php artisan code-usage:prune --days=30– removes hits older thanretention_days.