.agents/skills/configure-nightwatch/reference.md
| Event Type | Sampling | Filtering | Redaction |
|---|---|---|---|
| Requests | NIGHTWATCH_REQUEST_SAMPLE_RATE, Route middleware | Not applicable | Headers, payload, URL, IP |
| Commands | NIGHTWATCH_COMMAND_SAMPLE_RATE, Event listener | Not applicable | Command arguments |
| Queries | Parent context | rejectQueries(), NIGHTWATCH_IGNORE_QUERIES | SQL statement |
| Cache | Parent context | rejectCacheKeys(), rejectCacheEvents(), NIGHTWATCH_IGNORE_CACHE_EVENTS | Cache key |
| Jobs | Parent context, Queue::before | rejectQueuedJobs() | Not applicable |
| Parent context | rejectMail(), NIGHTWATCH_IGNORE_MAIL | Subject | |
| Notifications | Parent context | rejectNotifications(), NIGHTWATCH_IGNORE_NOTIFICATIONS | Not applicable |
| Outgoing Requests | Parent context | rejectOutgoingRequests(), NIGHTWATCH_IGNORE_OUTGOING_REQUESTS | URL |
| Exceptions | NIGHTWATCH_EXCEPTION_SAMPLE_RATE | Not applicable | Exception message |
# Conservative sampling
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.01 # 1% of requests
NIGHTWATCH_COMMAND_SAMPLE_RATE=0.1 # 10% of commands
NIGHTWATCH_EXCEPTION_SAMPLE_RATE=1.0 # Always capture exceptions
# Filter noisy events
NIGHTWATCH_IGNORE_CACHE_EVENTS=true
NIGHTWATCH_IGNORE_QUERIES=true # Or filter specific queries programmatically
# Disable sensitive data collection
NIGHTWATCH_CAPTURE_REQUEST_PAYLOAD=false
NIGHTWATCH_REDACT_HEADERS=Authorization,Cookie,Proxy-Authorization,X-XSRF-TOKEN
# Or use redaction in AppServiceProvider
# Sample rates
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1
NIGHTWATCH_COMMAND_SAMPLE_RATE=1.0
NIGHTWATCH_EXCEPTION_SAMPLE_RATE=1.0
# Filter obvious noise programmatically
# Redact PII as needed
After configuration:
NIGHTWATCH_REQUEST_SAMPLE_RATE=1.0Route::get('/health', fn() => ['status' => 'ok'])
->middleware(Sample::never());
Nightwatch::rejectQueries(fn($q) =>
str_contains($q->sql, 'telescope') ||
str_contains($q->sql, 'pulse')
);
Nightwatch::redactCacheEvents(fn($e) =>
$e->key = preg_replace('/user:\d+/', 'user:***', $e->key)
);