Configuration reference
Every key in config/requizon.php, its environment variable and its default.
Requizon works with no configuration file at all. When you want to change something, publish it:
php artisan vendor:publish --tag=requizon-config
The published config/requizon.php explains every key in its comments. This page is the same information
as a table, with a link to the page that covers each group in depth.
Laravel merges the package defaults into your file one top-level key at a time. If your file has a
recording array, it replaces the whole default recording array, so a key you leave out
of it is missing rather than defaulted. Keep each nested array complete, and re-check it after upgrading
Requizon.
Switches#
| Key | Env | Default | Purpose |
|---|---|---|---|
enabled |
REQUIZON_ENABLED |
true |
The master switch. false registers no recording middleware, no dashboard routes and no scheduled commands. Migrations still load. |
instrument.laravel_client |
REQUIZON_INSTRUMENT_LARAVEL |
true |
Installs the recording middleware on Laravel's HTTP client. false leaves the client alone and records only the Guzzle stacks you instrument. |
instrument.promise_fallback |
REQUIZON_PROMISE_FALLBACK |
true |
Records a transfer whose handler never reported transfer stats, timing it by wall clock. See the promise fallback. |
What is recorded, and under which name#
| Key | Default | Purpose |
|---|---|---|
ignore_hosts |
[] |
Str::is() host patterns that are never recorded. Ignoring hosts |
apis |
[] |
API name to Str::is() host patterns. A host no pattern matches is named after itself. Naming APIs |
paths.max_segments |
4 |
Path segments kept before the rest is replaced with /*. |
paths.max_segment_length |
40 |
A longer segment is treated as an identifier and stored as :id. |
paths.max_length |
255 |
The stored path is cut to this many bytes. It must fit the VARCHAR(255) column. |
paths.patterns |
[] |
An allow-list of normalised paths. When set, anything unmatched is stored under other_label. Paths and table size |
paths.other_label |
'other' |
The path recorded for calls that match none of paths.patterns. |
Recording and redaction#
| Key | Default | Purpose |
|---|---|---|
recording.response_body_max_bytes |
65536 |
How much of a failed call's response body is stored, and how much of a successful one the failure detector reads. |
recording.request_body_max_bytes |
4096 |
How much of an unparsed request body is stored when store_unparsed_bodies is on. |
recording.max_body_read_bytes |
262144 |
A request body larger than this is never read, only measured. Keeps file uploads out of memory. |
recording.store_unparsed_bodies |
false |
Store XML, SOAP and other bodies that cannot be parsed into named parameters verbatim, instead of by shape. |
recording.redact_patterns |
pass, secret, token, apikey, api_key, auth |
A parameter whose lowercased name contains one of these is stored as ***. |
recording.redact_exact |
p, l, pwd |
A parameter with exactly this name is stored as ***. Redaction and stored data |
Dashboard#
| Key | Env | Default | Purpose |
|---|---|---|---|
path |
REQUIZON_PATH |
'requizon' |
The URI the dashboard is served from. |
domain |
REQUIZON_DOMAIN |
null |
Serve the dashboard from a dedicated host. null serves it on every host the application answers. |
middleware |
— | ['web'] |
Applied to every dashboard route, before Requizon's own check of the viewRequizon gate. |
dashboard.windows |
— | [24, 72, 168, 336] |
The time windows, in hours, offered by the window selector. |
dashboard.default_window |
— | 72 |
The window shown first. A value not in windows falls back to the first entry. |
dashboard.per_page |
— | 50 |
Rows per page on the requests list. The dashboard |
Storage, retention and scheduling#
| Key | Env | Default | Purpose |
|---|---|---|---|
connection |
REQUIZON_DB_CONNECTION |
null |
The database connection Requizon's tables live on. null is the default connection. The aggregate needs it to be MySQL 8.0.20+. |
retention.detail_days |
— | 14 |
Days http_requests rows are kept. |
retention.aggregate_days |
— | 365 |
Days hourly rollup rows are kept. |
schedule.enabled |
REQUIZON_SCHEDULE |
true |
Register the aggregate and prune commands on Laravel's scheduler. false leaves scheduling to you. |
schedule.aggregate_hours |
— | 2 |
How many past hours each scheduled aggregate run rebuilds. |
schedule.prune_at |
— | '03:00' |
The daily time requizon:prune runs, in the scheduler's timezone. Retention and scheduling |
Callbacks#
Four behaviours need code rather than a value, and are registered on BoringO11y\Requizon\Requizon,
usually in the boot() method of your published RequizonServiceProvider:
| Method | Replaces | Covered in |
|---|---|---|
resolveApiUsing() |
The apis host map. Returning null falls back to it. |
Naming APIs |
resolvePathUsing() |
The built-in path normaliser. Returning null falls back to it. |
Paths and table size |
detectFailuresUsing() |
Nothing. Without it no successful response body is read. | Failure detection |
auth() |
The viewRequizon gate check. The base provider registers one for you. |
The dashboard |
After changing configuration#
If you cache configuration in production, run php artisan config:cache again after editing the file, and
restart long-running processes (queue workers, Octane) so they pick up the new values.
php artisan about shows whether the HTTP client is instrumented and the path the dashboard is served
from, which is a quick way to confirm what the running configuration actually is.