Skip to main content

什麼是 Laravel Pulse

Laravel Pulse 是可一眼掌握應用程式效能與使用狀況的監控儀表板。 可用來找出慢速任務或慢速端點的瓶頸,或查詢最活躍的使用者。

Telescope 與 Pulse 的差異

個別事件的詳細除錯請使用 Laravel Telescope

資料流程圖


安裝

Pulse 的第一方儲存實作需要 MySQL、MariaDB 或 PostgreSQL 資料庫。若使用其他資料庫引擎,請另外準備 MySQL、MariaDB 或 PostgreSQL 資料庫專用於 Pulse 資料。
1

安裝套件

使用 Composer 安裝 Pulse。
2

公開設定檔與 migration

使用 vendor:publish Artisan 指令公開檔案。
3

執行 migration

建立 Pulse 用於儲存資料的資料表。
migration 完成後,即可透過 /pulse 路由存取儀表板。

公開設定檔

亦可單獨公開設定檔進行自訂:

存取儀表板

認證設定

預設只有 local 環境可存取儀表板。 在正式環境請自訂 viewPulse 認證 gate 以設定存取控制。
將上述程式碼加入 app/Providers/AppServiceProvider.phpboot 方法。

儀表板自訂

可公開儀表板的 view,自訂卡片與版面配置。
公開後,編輯 resources/views/vendor/pulse/dashboard.blade.php。 儀表板以 Livewire 運作,不需要建置 JavaScript 即可自訂。
每個卡片可用 colsrows 屬性調整大小與位置。

Recorder

Recorder 會擷取應用程式的事件並記錄到 Pulse 資料庫。 在 config/pulse.phprecorders 區段管理設定。

Requests / Slow Requests

Requests recorder 擷取進入應用程式的請求資訊。 可設定 slow route 的門檻(預設:1000ms)、取樣率,以及要忽略的路徑。

Slow Jobs

SlowJobs recorder 擷取超過門檻的緩慢 job(預設:1000ms)。 可為每個 job 設定不同的門檻。

Exceptions

Exceptions recorder 擷取應用程式發生的可回報例外。 會依例外類別與發生位置分群。

Cache

CacheInteractions recorder 擷取快取的命中與未命中。 也可設定將相似 key 分群的正則表達式。

Queues

Queues recorder 擷取 queue 中 job 的吞吐量(已排入、處理中、已完成、已 release、失敗)。

Servers

Servers recorder 擷取運行應用程式的伺服器的 CPU、記憶體、儲存用量。 使用此 recorder 需在各監控對象伺服器上持續啟動 pulse:check 指令。
伺服器名稱預設使用 PHP 的 gethostname() 值。可設定環境變數自訂。

Users

UserRequestsUserJobs recorder 會擷取發送請求或 job 的使用者資訊,並顯示在「Application Usage」卡片中。

Redis Ingest

在高流量環境中,可先將 entry 傳送到 Redis stream,再匯入資料庫。
使用 Redis ingest 時,需以 pulse:work 指令監聽 stream。

取樣

在高流量環境擷取全部事件時,資料庫可能會累積數百萬列。 啟用取樣後,只會記錄部分事件,並在儀表板以近似值顯示。
儀表板中會在近似值前顯示 ~。 指標的 entry 越多,越能維持精度並降低取樣率。

環境變數

主要設定可透過環境變數控制。

自訂卡片

可建立自訂的 Pulse 卡片,顯示應用程式特有的資料。 卡片以 Livewire 元件實作。
在卡片的 view 中,可以使用 Pulse 提供的 Blade 元件實現一致的視覺呈現。
自訂資料的擷取可使用 Pulse::record 方法。
將建立的元件放進儀表板 view。

總結

後續步驟

錯誤處理

了解應用程式的例外處理與回報機制。

Logging

說明 Laravel 記錄系統的設定與活用方式。
最後修改於 2026年8月2日