laravel-telltale maintained by apxcde
Laravel Telltale: send Laravel errors, logs and traces to Telltale
apxcde/laravel-telltale is the Laravel client for Telltale, a self-hosted receiver for errors, logs and performance traces. It runs inside your application and reports to your own Telltale installation.
This package is a fork of spatie/laravel-flare by Spatie. It is not affiliated with Spatie or Flare. The fork does not follow upstream releases.
What differs from spatie/laravel-flare
- Names. The namespace is
Apxcde\LaravelTelltale, the config file isconfig/telltale.php, the log driver istelltale, the facade isTelltaleand the test command istelltale:test. - Env variables start with
TELLTALE_:TELLTALE_KEY,TELLTALE_BASE_URL,TELLTALE_REPORT,TELLTALE_TRACE,TELLTALE_SAMPLER_RATEandTELLTALE_LOG. - No default server. Nothing is sent unless both
TELLTALE_KEYandTELLTALE_BASE_URLare set. The package never falls back to flareapp.io. - Tracing is off by default. Enable it with
TELLTALE_TRACE=true. - The error page's Share button is off by default, because it uploads the error to flareapp.io.
The wire protocol is unchanged. The package still depends on spatie/flare-client-php, which builds and sends the payloads, so its classes keep the Spatie\FlareClient namespace and the payloads keep Flare's attribute names (for example flare.entry_point.type).
Requirements
PHP 8.2 or higher and Laravel 10.14 or higher. The package conflicts with spatie/laravel-ignition, which needs an older spatie/flare-client-php; remove Ignition first.
Installation
The package is not on Packagist. Add its repository to your composer.json, then require it:
"repositories": [
{ "type": "vcs", "url": "https://github.com/apxcde/laravel-telltale" }
]
composer require apxcde/laravel-telltale:dev-main
Set the project key and the URL of your Telltale installation in .env:
TELLTALE_KEY=your-project-key
TELLTALE_BASE_URL=https://telltale.example.com
Report exceptions from bootstrap/app.php:
use Apxcde\LaravelTelltale\Facades\Telltale;
->withExceptions(function (Exceptions $exceptions) {
Telltale::handles($exceptions);
})
To send logs, add a channel with the telltale driver to config/logging.php and include it in your stack:
'telltale' => [
'driver' => 'telltale',
],
To change the defaults, publish the config file:
php artisan vendor:publish --tag=telltale-config
Then check the setup. Each flag sends one test payload of that kind:
php artisan telltale:test --errors --logs --traces
Keeping tests silent
Set an empty key in phpunit.xml so your test suite never sends anything:
<env name="TELLTALE_KEY" value=""/>
Testing the package
The test suite includes integration tests that need a running workbench server and queue worker:
composer install
composer run build
vendor/bin/testbench serve &
vendor/bin/testbench queue:work &
vendor/bin/pest
To run only the unit tests:
vendor/bin/pest --exclude-group=integration
Changelog
CHANGELOG and UPGRADING record the history of spatie/laravel-flare up to the point of the fork, and use its names.
Credits
- Spatie and all contributors to
spatie/laravel-flare, who wrote nearly all of this code.
License
The MIT License (MIT). Please see the License File for more information.