> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Introductie tot Laravel Nightwatch

> Een overzicht van 'Nightwatch', het gehoste SaaS-monitoringplatform van Laravel: de verschillen met Telescope en Pulse, de installatie en de configuratie om het gratis plan praktisch te gebruiken.

## Wat is Laravel Nightwatch?

[Laravel Nightwatch](https://nightwatch.laravel.com) is een **gehost SaaS-platform** voor het continu monitoren van de productieomgeving van je Laravel-applicatie. Het verzamelt en visualiseert in realtime telemetriegegevens van je hele applicatie: HTTP-requests, SQL-query's, excepties, queue jobs, logs, geplande taken en meer.

<Info>
  Nightwatch is een **betaalde dienst** (maandelijks abonnement). Er is ook een gratis plan, maar dat heeft een limiet op het aantal events dat je kunt verzamelen. Om het gratis plan praktisch te gebruiken zijn de sampling- en filterinstellingen verderop in dit artikel onmisbaar.
</Info>

***

## Verschillen met Telescope en Pulse

Nightwatch heeft een ander doel dan de bestaande monitoring- en debugtools in het Laravel-ecosysteem. Laten we de toepassingen op een rij zetten.

```mermaid theme={null}
graph TD
    A["Laravel-monitoringtools"] --> B["Telescope<br>debuggen in de ontwikkelomgeving"]
    A --> C["Pulse<br>performance-aggregatie in productie"]
    A --> D["Nightwatch<br>gehoste monitoring van productie"]

    B --> B1["Zelf hosten<br>alleen tijdens ontwikkeling<br>gratis & OSS"]
    C --> C1["Zelf hosten<br>realtime dashboard<br>gratis & OSS"]
    D --> D1["SaaS-platform<br>vereist een draaiende agent<br>betaalde dienst"]
```

| Tool           | Toepassing                                       | Hosting                      | Doelomgeving        |
| -------------- | ------------------------------------------------ | ---------------------------- | ------------------- |
| **Telescope**  | Debuggen en query-onderzoek tijdens ontwikkeling | Zelf (binnen je Laravel-app) | Lokale ontwikkeling |
| **Pulse**      | Aggregatie en weergave van performance-metrics   | Zelf (binnen je Laravel-app) | Productie & staging |
| **Nightwatch** | Realtime monitoring van je productie-app         | Door Laravel gehoste SaaS    | Productieomgeving   |

Nightwatch verzamelt vrijwel dezelfde informatie als Telescope, maar laat een agentproces draaien dat de data naar de cloud stuurt. Daardoor kun je ook historische data bekijken als je server plat ligt, en kun je meerdere servers en meerdere applicaties centraal beheren.

***

## Architectuur

Nightwatch plaatst een agentproces tussen je Laravel-app en de Nightwatch-cloud.

```mermaid theme={null}
sequenceDiagram
    participant App as Laravel-app
    participant Agent as Nightwatch-agent<br>(php artisan nightwatch:agent)
    participant Cloud as Nightwatch-cloud
    participant Dashboard as Dashboard<br>(nightwatch.laravel.com)

    App->>Agent: Eventdata versturen<br>(127.0.0.1:2407)
    Agent->>Cloud: Batchgewijs versturen
    Cloud->>Dashboard: Visualisatie & alerts
```

De agent luistert lokaal (`127.0.0.1:2407`), ontvangt events van je Laravel-app en stuurt ze door naar de cloud. Daarom moet het agentproces continu draaien.

***

## Installatie en initiële configuratie

### 1. Account en applicatie aanmaken

Maak op [nightwatch.laravel.com](https://nightwatch.laravel.com) een account aan en registreer een organisatie en applicatie. Na het registreren van de applicatie krijg je een **omgevingstoken**.

### 2. Het pakket installeren

```bash theme={null}
composer require laravel/nightwatch
```

Anders dan bij Telescope is de flag `--dev` **niet nodig**. Nightwatch is bedoeld voor gebruik in productie.

### 3. Het token instellen

Voeg het token toe aan je `.env`-bestand.

```ini theme={null}
NIGHTWATCH_TOKEN=your-api-key
```

### 4. De agent starten

```bash theme={null}
php artisan nightwatch:agent
```

De agent moet continu op de achtergrond draaien. Voor Laravel Cloud, Laravel Forge en Laravel Vapor zijn er speciale handleidingen. Bij Forge wordt alles automatisch geconfigureerd als je de officiële integratie gebruikt.

De status van de agent controleren:

```bash theme={null}
php artisan nightwatch:status
```

### 5. Uitschakelen in de testomgeving

We raden aan Nightwatch uit te schakelen tijdens het draaien van tests.

```ini theme={null}
# .env
NIGHTWATCH_ENABLED=false
```

Je kunt het ook instellen in `phpunit.xml`.

```xml theme={null}
<php>
    <env name="APP_ENV" value="testing"/>
    <env name="NIGHTWATCH_ENABLED" value="false"/>
</php>
```

***

## Configuratie om het gratis plan praktisch te gebruiken

<Warning>
  **Het gratis plan heeft een maandelijkse limiet op het aantal events.** Met de standaardinstellingen (samplingpercentage 100% en alle data verzamelen) bereik je bij een applicatie met veel verkeer die limiet al snel. Pas daarom altijd de onderstaande instellingen toe.
</Warning>

### Het samplingpercentage verlagen

`NIGHTWATCH_REQUEST_SAMPLE_RATE` staat standaard op `1.0` (alle requests verzamelen). Bij het gratis plan raden we aan dit terug te brengen tot ongeveer `0.1` (10%).

```ini theme={null}
# .env
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1
```

Een configuratievoorbeeld waarbij excepties en commando's nog steeds volledig worden verzameld:

```ini theme={null}
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1    # Slechts 10% van de requests
NIGHTWATCH_EXCEPTION_SAMPLE_RATE=1.0  # Alle excepties (standaard)
NIGHTWATCH_COMMAND_SAMPLE_RATE=1.0    # Alle commando's (standaard)
```

### Query-verzameling uitschakelen

Databasequery's maken een groot deel uit van het aantal events. Door in het gratis plan de query-verzameling uit te schakelen, houd je ruimte over voor het opslaan van belangrijke events (excepties, requests, jobs).

```ini theme={null}
# .env
NIGHTWATCH_IGNORE_QUERIES=true
```

### Overige filterinstellingen

Indien nodig kun je ook het verzamelen van cache-events en mails uitschakelen.

```ini theme={null}
NIGHTWATCH_IGNORE_CACHE_EVENTS=true
NIGHTWATCH_IGNORE_MAIL=true
NIGHTWATCH_IGNORE_NOTIFICATIONS=true
NIGHTWATCH_IGNORE_OUTGOING_REQUESTS=true
```

### Aanbevolen configuratie voor het gratis plan samengevat

```ini theme={null}
# .env (aanbevolen configuratie voor het gratis plan)
NIGHTWATCH_TOKEN=your-api-key
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1
NIGHTWATCH_IGNORE_QUERIES=true
```

Met alleen deze drie regels realiseer je ook op het gratis plan praktische applicatiemonitoring.

***

## Belangrijkste functies

### Requestmonitoring

Per HTTP-request worden responstijden, statuscodes, route-informatie en meer verzameld. Zo kun je abnormaal trage endpoints identificeren en performance-bottlenecks opsporen.

### Exceptietracking

Onafgehandelde excepties in productie worden in realtime vastgelegd. Stack traces en broncode-snippets worden automatisch geregistreerd, wat het onderzoeken van de oorzaak vereenvoudigt.

```ini theme={null}
# Broncode van excepties verzamelen (standaard ingeschakeld)
NIGHTWATCH_CAPTURE_EXCEPTION_SOURCE_CODE=true
```

### Logverzameling

Integreert met het logsysteem van Laravel (zoals `Log::error()`) en stuurt gestructureerde logs naar Nightwatch.

```ini theme={null}
# Minimaal logniveau dat wordt verzameld (standaard: debug)
NIGHTWATCH_LOG_LEVEL=error
```

### Monitoring van jobs en geplande taken

Volgt de uitvoeringsgeschiedenis, de succes-/faalstatus en de uitvoeringstijd van queue jobs en geplande taken. Zo spoor je problemen in batchverwerking snel op.

### Deploymenttracking

Koppelt wijzigingen en problemen per release aan elkaar. Onderzoek zoals "na deze deploy zijn de excepties toegenomen" kun je visueel uitvoeren.

### Alerts en notificaties

Via Slack-integratie of webhooks kun je direct meldingen krijgen over pieken in excepties of afnemende performance.

***

## Wanneer gebruik je Telescope of Nightwatch?

```mermaid theme={null}
flowchart TD
    Q1{"Heb je data uit<br>productie nodig?"} -->|Ja| Q2{"Wil je de data op<br>je eigen server houden?"}
    Q1 -->|Nee| T["Telescope<br>(lokale ontwikkeling)"]
    Q2 -->|Ja| P["Pulse<br>(zelf hosten)"]
    Q2 -->|Nee| N["Nightwatch<br>(gehoste SaaS)"]
```

* **Lokale ontwikkeling** → Telescope
* **Een dashboard met geaggregeerde productiedata** → Pulse
* **Gedetailleerde traces en alerts voor productie** → Nightwatch

De drie sluiten elkaar niet uit; je kunt Pulse en Nightwatch ook samen gebruiken.

***

## Samenvatting

Laravel Nightwatch is een krachtige SaaS-tool die de zichtbaarheid van je Laravel-applicatie in productie sterk verbetert. Houd bij de invoering rekening met de volgende punten.

* Het agentproces moet continu draaien
* Bij het gratis plan zijn de instellingen `NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1` en `NIGHTWATCH_IGNORE_QUERIES=true` praktisch gezien onmisbaar
* Telescope (ontwikkeling), Pulse (aggregatie) en Nightwatch (monitoring) hebben verschillende rollen en zijn te combineren

Raadpleeg voor gedetailleerde configuratie de [officiële documentatie](https://nightwatch.laravel.com/docs/start-guide) en de [referentie voor omgevingsvariabelen](https://nightwatch.laravel.com/docs/environment-variables).

<Card title="Laravel Telescope in de praktijk" icon="telescope" href="/nl/blog/telescope-introduction">
  Voor het debuggen tijdens lokale ontwikkeling gebruik je Telescope.
</Card>


## Related topics

- [Introductie tot authenticatie](/nl/authentication.md)
- [Introductie tot Eloquent](/nl/eloquent.md)
- [Introductie tot Eloquent-relaties](/nl/eloquent-relationships.md)
- [Introductie van Laravel Wayfinder](/nl/blog/wayfinder-introduction.md)
- [Introductie Svelte — de basis voor Inertia × Laravel](/nl/blog/svelte-introduction.md)
