什麼是 Laravel Pulse
Laravel Pulse 是可一眼掌握應用程式效能與使用狀況的監控儀表板。 可用來找出慢速任務或慢速端點的瓶頸,或查詢最活躍的使用者。Telescope 與 Pulse 的差異
個別事件的詳細除錯請使用 Laravel Telescope。
資料流程圖
安裝
1
安裝套件
使用 Composer 安裝 Pulse。
2
公開設定檔與 migration
使用
vendor:publish Artisan 指令公開檔案。3
執行 migration
建立 Pulse 用於儲存資料的資料表。
/pulse 路由存取儀表板。
公開設定檔
亦可單獨公開設定檔進行自訂:存取儀表板
認證設定
預設只有local 環境可存取儀表板。
在正式環境請自訂 viewPulse 認證 gate 以設定存取控制。
app/Providers/AppServiceProvider.php 的 boot 方法。
儀表板自訂
可公開儀表板的 view,自訂卡片與版面配置。resources/views/vendor/pulse/dashboard.blade.php。
儀表板以 Livewire 運作,不需要建置 JavaScript 即可自訂。
cols 與 rows 屬性調整大小與位置。
Recorder
Recorder 會擷取應用程式的事件並記錄到 Pulse 資料庫。 在config/pulse.php 的 recorders 區段管理設定。
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 指令。
gethostname() 值。可設定環境變數自訂。
Users
UserRequests 與 UserJobs recorder 會擷取發送請求或 job 的使用者資訊,並顯示在「Application Usage」卡片中。
Redis Ingest
在高流量環境中,可先將 entry 傳送到 Redis stream,再匯入資料庫。pulse:work 指令監聽 stream。
取樣
在高流量環境擷取全部事件時,資料庫可能會累積數百萬列。 啟用取樣後,只會記錄部分事件,並在儀表板以近似值顯示。~。
指標的 entry 越多,越能維持精度並降低取樣率。
環境變數
主要設定可透過環境變數控制。自訂卡片
可建立自訂的 Pulse 卡片,顯示應用程式特有的資料。 卡片以 Livewire 元件實作。Pulse::record 方法。
總結
後續步驟
錯誤處理
了解應用程式的例外處理與回報機制。
Logging
說明 Laravel 記錄系統的設定與活用方式。