You can use the following environment variables to determine how Palzin Monitor will collect information for your application:
Variable | Type | Default | Description |
---|---|---|---|
PALZIN_APM_API_KEY | string | Your application key to identify uniquely your application in Palzin. | |
PALZIN_APM_ENABLE | boolean | true | Enable/Disable data transfer from your app to Inspection API. |
PALZIN_APM_TRANSPORT | string | async | Tha way the package sends data to the inspection API. sync (using php curl extension), async (in a background process) |
PALZIN_APM_MAX_ITEMS | integer | 100 | Max numebr of items recorded during an execution cycle. |
PALZIN_APM_QUERY | boolean | true | Determine if Palzin Monitor should report database queries. |
PALZIN_APM_QUERY_BINDINGS | boolean | false | Determine if Palzin Monitor should report binding values for queries. |
PALZIN_APM_USER | boolean | true | Determine if Palzin Monitor should attach user information in your events. |
PALZIN_APM_EMAIL | boolean | true | Determine if Palzin Monitor should report emails. |
PALZIN_APM_NOTIFICATIONS | boolean | true | Determine if Palzin Monitor should report notifications. |
PALZIN_APM_JOB | boolean | true | Determine if Palzin Monitor should report queued jobs execution. |
PALZIN_APM_VIEWS | boolean | true | Determine if Palzin Monitor should report views rendering stats. |
PALZIN_APM_UNHANDLED_EXCEPTIONS | boolean | true | Determine if Palzin Monitor should report unhandled exception fired in your application. |
PALZIN_APM_REDIS | boolean | true | Determine if Palzin Monitor should report redis command. |
If you want full control of the package behaviour publish the configuration file:
php artisan vendor:publish --provider="Palzin\Laravel\PalzinServiceProvider"
That will add config/ultimate.php file in your Laravel configuration directory.
If desired, you may disable data transfer setting to false the enable configuration option:
'enable' => env('PALZIN_APM_ENABLE', true),
Not all transactions need to be monitored in your application. Think about the artisan commands used for application maintainance or deployment, like: migrate:xxx, queue:xxx , horizon:xxx, or other parts of your app that is built for internal use and aren't reachable by users.
You have many options to keep off the noise, and only monitor what metter.
To add these customizations you need to publish the ultimate.php configuration file if you haven't already: php artisan vendor:publish --provider="Palzin\Laravel\PalzinServiceProvider"
It could be needed to turn off monitoring based on url. Think about paths like /nova, /telescope, or other parts of your app that don't affect the user experience.
You can also use the wildcard character * to exclude all sub-paths.
/*
|---------------------------------------------------------------------
| Web request url to ignore
|---------------------------------------------------------------------
|
| Add at this list the url schemes that you don't want monitoring
| in your Palzin Monitor dashboard. You can also use wildcard expression (*).
|
*/
'ignore_url' => [
'telescope*',
'vendor/telescope*',
'horizon*',
'vendor/horizon*',
],
You can ignore artisan commands adding the command signature to the ignore_commands parameter in the config/ultimate.php configuration file.
/*
|---------------------------------------------------------------------
| Artisan command to ignore
|---------------------------------------------------------------------
|
| Add at this list all command signature that you don't want monitoring
| in your Palzin Monitor dashboard.
|
*/
'ignore_commands' => [
'migrate:rollback',
'migrate:fresh',
'migrate:reset',
'migrate:install',
'package:discover',
'queue:listen',
'queue:work',
'horizon',
'horizon:work',
'horizon:supervisor',
],
You can also ignore background jobs adding classes to the ignore_jobs property:
/*
|--------------------------------------------------------------------------
| Job classes to ignore
|--------------------------------------------------------------------------
|
| Add at this list the job classes that you don't want monitor.
|
*/
'ignore_jobs' => [
//\App\Jobs\MyJob::class
],
It takes less than a minutes to setup your first monitoring.