Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install event4u-app-agent-config-agent-src-skills-laravel-pulsegit clone https://github.com/event4u-app/agent-config.gitcp agent-config/SKILL.MD ~/.claude/skills/event4u-app-agent-config-agent-src-skills-laravel-pulse/SKILL.md---
name: laravel-pulse
description: "Use when setting up Laravel Pulse — real-time dashboard, built-in cards, custom recorders, performance insights — even when the user just says 'I need app monitoring' without naming Pulse."
source: package
domain: engineering
---
# laravel-pulse
## When to use
Use this skill when working with Laravel Pulse:
- Setting up the Pulse monitoring dashboard
- Configuring built-in recorders (slow queries, exceptions, queues, etc.)
- Creating custom Pulse cards and recorders
- Performance monitoring and alerting
## Procedure: Set up Pulse
1. **Install** — `composer require laravel/pulse`, publish config, run migrations.
2. **Configure** — Set up recorders in `config/pulse.php`.
3. **Add dashboard** — Register route and authorize access.
4. **Verify** — Visit `/pulse` dashboard, confirm data is being recorded.
### Installation
```bash
composer require laravel/pulse
php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"
php artisan migrate
```
## Dashboard
### Access control
```php
// PulseServiceProvider or Gate
Gate::define('viewPulse', function (User $user): bool {
return $user->isSuperuser();
});
```
### Dashboard route
Pulse registers `/pulse` automatically. Customize in `config/pulse.php`:
```php
'path' => 'pulse',
'middleware' => ['web', 'auth'],
```
## Built-in cards
| Card | What it shows |
|---|---|
| `<livewire:pulse.servers />` | CPU, memory, storage per server |
| `<livewire:pulse.usage />` | Top users by request count |
| `<livewire:pulse.queues />` | Queue throughput and wait times |
| `<livewire:pulse.slow-queries />` | Slowest database queries |
| `<livewire:pulse.slow-requests />` | Slowest HTTP requests |
| `<livewire:pulse.slow-jobs />` | Slowest queued jobs |
| `<livewire:pulse.slow-outgoing-requests />` | Slowest external HTTP calls |
| `<livewire:pulse.exceptions />` | Most frequent exceptions |
| `<livewire:pulse.cache />` | Cache hit/miss ratio |
### Dashboard view
```blade
{{-- resources/views/vendor/pulse/dashboard.blade.php --}}
<x-pulse>
<livewire:pulse.servers cols="full" />
<livewire:pulse.usage cols="4" rows="2" />
<livewire:pulse.queues cols="4" />
<livewire:pulse.cache cols="4" />
<livewire:pulse.slow-queries cols="8" />
<livewire:pulse.exceptions cols="4" />
<livewire:pulse.slow-requests cols="6" />
<livewire:pulse.slow-jobs cols="6" />
</x-pulse>
```
## Configuration
### config/pulse.php
```php
'recorders' => [
\Laravel\Pulse\Recorders\SlowQueries::class => [
'enabled' => true,
'threshold' => 1000, // ms
'sample_rate' => 1.0,
],
\Laravel\Pulse\Recorders\SlowRequests::class => [
'enabled' => true,
'threshold' => 1000, // ms
'sample_rate' => 1.0,
],
\Laravel\Pulse\Recorders\Exceptions::class => [
'enabled' => true,
'sample_rate' => 1.0,
],
],
// Data retention
'ingest' => [
'trim' => [
'lottery' => [1, 1000],
'keep' => '7 days',
],
],
```
## Custom recorders
```php
use Laravel\Pulse\Facades\Pulse;
// Record a custom entry
Pulse::record('api_call', 'stripe', 250) // type, key, value
->avg()
->count();
```
## Core rules
- **Trim old data** — configure retention to prevent DB bloat.
- **Use sample rates** in production — not every request needs recording.
- **Separate DB** — consider a dedicated DB connection for Pulse data.
- **Restrict access** — always gate the dashboard behind authentication.
- **Monitor what matters** — don't enable all recorders if you don't need them.
## Output format
1. Pulse configuration with recorders and dashboard cards
2. Custom recorder class if needed
## Auto-trigger keywords
- Pulse
- monitoring dashboard
- slow queries
- slow requests
- application monitoring
- performance dashboard
## Gotcha
- Pulse stores data in the same DB by default — configure a separate connection for production.
- The model forgets that Pulse data is sampled, not exact — don't use it for billing or exact counts.
- Custom recorders must be registered in a service provider — they don't auto-discover.
## Do NOT
- Do NOT expose the Pulse dashboard without authentication.
- Do NOT set sample rate to 1.0 on high-traffic production — use 0.1 or lower.
- Do NOT forget to run `pulse:check` for server metrics.
- Do NOT store Pulse data in the main application DB on large apps.