Scout APM 是 Laravel 應用程式效能監控工具,可將效能異常直接綁定到端點,從而節省開發人員花費在故障排除和偵錯上的數小時時間。
Scout 最近擴展了其服務產品,包括針對 PHP 應用程式的微服務和託管服務監控,為您提供更具凝聚力和可操作性的可觀察性指標。透過閱讀以下內容,了解有關如何使用 Scout APM 監控 Laravel 應用程式的更多資訊。
要開始監控您的 Laravel 應用程序,您首先需要一個 Scout 帳戶。如果您還沒有,可以 在此註冊 14 天免費試用(無需信用卡)。
接下來要做的是將低開銷的監控代理程式新增到專案的依賴中,這可以透過在shell 中使用一個命令來完成:
composer require scoutapp/scout-apm-laravel
此命令將安裝兩個包:scout-apm-laravel 和scout-apm-php。下一步是定義一些配置以代理連結到您的帳戶。為此,請在您的文字編輯器中開啟專案的.env
文件,並將以下三行配置新增至文件:
SCOUT_MONITOR=true SCOUT_KEY=”enter your Agent Key here” SCOUT_NAME=”enter the name of you application here”
您可以在Scout 的設定頁面 上找到您帳戶的代理秘鑰。部署,大約 5 分鐘後,您的資料將開始出現在 Scout 中。有關 Heroku 安裝或解決安裝問題的更多信息,請查看文件或發送電子郵件至 support@scoutapm.com,我們將很樂意提供協助。
現在你已經建立了一個 Scout 帳戶,連結了監控代理,但是你從哪裡開始診斷你的應用程式的效能問題呢?讓我們來看看 Scout 的主要功能,這些功能可以幫助您快速了解效能問題。
當您登入Scout 時,您看到的第一個頁面是概覽頁面(如下所示),它為您提供了一個清晰、整潔的應用程式運作狀況和效能快照,一目了然。
該圖表是高度可配置的,可讓您更改時間段並切換您想要查看的指標。它還具有簡潔的拖放工具(如下所示),可讓您在希望更詳細探索的區域周圍繪製一個框架。當您繪製這些框時,將動態載入一個彈出窗口,顯示在此時間段內存取的所有端點。當您在圖表上看到效能高峰並且想要了解原因時,此功能尤其有用。
如果您是第一次嘗試 Scout,一個很好的起點是洞察選項卡。在這裡,我們有一組演算法可以分析您的專案以識別潛在的 n 1 查詢 和 慢查詢。這些為您提供了「唾手可得的」效能修復,通常可以立即提高應用程式的效能。
Scout 主要提供兩個層級的應用程式效能指標。首先,從端點的角度來看。例如,平均而言,存取此端點需要多長時間?時間花在哪裡?
如果您查看下面的螢幕截圖,您可以清楚地看到,在3 次訪問此ForgetPasswordController 端點的2,371 毫秒平均請求時間中,有78% 花費在控制器層,這表明這將是第一個調查是否我們想嘗試改善這個緩慢的端點。
Scout 主要展示指標的第二個角度是在 Trace 層級。例如,在某人發出這個特定的 Web 請求期間,需要多長時間才能完成,以及請求的哪些等級消耗的時間最多等。請參閱下面UserController 的更新操作的跟踪,我們可以看到在這種情況下,98% 的時間都花在了SQL 層上,而大部分時間都花在了對第一行查詢的那2 次調用上。如果我們點擊那個 SQL 按鈕,我們可以看到一個回溯,看看我們是否可以改進查詢。
這些頁面是您在 Scout 中花費大部分時間的地方,它們為您提供了在嘗試了解您的效能問題時必不可少的可見性。您可以直接從主概覽頁面和洞察標籤存取 Endpoint 和 Trace 頁面,或點擊頁面頂部的 Web Endpoints 連結(如下所示)。
現在我們已經介紹了Scout 的基礎知識並向您展示了您通常會日復一日使用的系統的主要區域,現在讓我們將注意力轉移到一些更在進階的功能上,這些功能使Scout 在APM 領域脫穎而出。
無論您是使用 Sentry、Honeybadger、Bugsnag 或 Rollbar 進行錯誤監控,我們都能滿足您的需求! Scout 與這些流行的服務無縫集成,讓您可以在主概覽頁面上的一個地方進行所有監控。
無論您使用哪種服務,設定過程都是相似的,而所涉及的只是在Scout 的設定畫面上新增API 令牌 。
為什麼此效能問題只在週二晚上 2:00 AM 從巴西 IP 位址發生?這些困難(但常見)的效能問題可以透過 Scout 最強大的功能之一來解決:與使用者定義的自訂上下文結合使用的追蹤資源管理器。
使用定義的自訂上下文可讓您告訴我們您需要查看的內容。值得投入 相對較短的設定時間 以獲得監控超能力!預設情況下,您將看到的唯一上下文欄位是 URI 和主機名,如下所示,但這些可以自訂為您想要的任何內容。
追蹤資源管理器 的多重篩選器圖表(如上所示)可讓您檢查與您定義的條件相符的端點,然後您可以在螢幕的Transaction Traces 部分中查看與這些濾鏡相符的所有追蹤。例如,也許您想查看某個使用者的 Web 要求,或某個計畫的所有使用者的 Web 要求,或是來自世界某個地區的 Web 要求。這些操作在具有自訂上下文的追蹤資源管理器中很容易完成,它們可以幫助您深入了解那些難以診斷、耗時的效能問題。
您看這個效能問題是否在上次部署後突然開始發生?在您部署期間的使用者體驗如何?這些是可以使用部署追蹤功能來回答,該功能將在主概覽圖表上放置一個火箭符號以指示部署何時發生。
部署追蹤還允許您查看詳細信息,例如部署中涉及的提交數量和來自哪個分支的提交。當您將 SHA 或您的部署新增至 SCOUT_REVISON_SHA
環境變數時,我們可以收集所有這些資訊。
與所有優秀監控方案一樣,Scout 為您提供了一個複雜的警報系統,可以配置為在端點回應時間或記憶體使用指標超過某個閾值時,向某些人發送警報。這些警報將在主概覽圖上顯示為警告符號,並發出通知。
預設情況下,系統警報將透過郵件發送通知給通知群組中的用戶,但也可以透過我們的webhook 功能將其配置與Slack、VictorOps、PagerDuty等第三方服務一起工作。
您是否在使用 Laravel 以外的函式庫,而我們目前沒有偵測到這些函式庫?如果是這樣,那麼首先讓我們的支援團隊知道,我們將嘗試為您添加支援。同時,您可以自己添加一些自訂工具,它 非常容易上手,它將確保您對整個應用程式有完全的可見性。
如你所見,Scout APM 為 PHP 和 Laravel 社群帶來了一個非常成熟的 APM 監控方案。我們整潔的 UI 和深入的工具有助於您快速找到問題的核心,同時由於靈活的基於交易的定價結構,您仍然可以負擔得起。
原文網址:https://laravel-news.com/scout-apm-for-monitoring-a-laravel-application
翻譯網址:https://learnku. com/laravel/t/68744
【相關建議:laravel影片教學】
以上是如何使用Scout APM監控Laravel程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!