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”
您可以在 在此處注冊 14 天免費試用(無需信用卡) 上找到您賬戶的代理秘鑰。部署,大約 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 與這些流行的服務無縫集成,讓您可以在主概覽頁面上的一個地方進行所有監控。
無論您使用哪種服務,設置過程都是相似的,并且 在此處注冊 14 天免費試用(無需信用卡)。
自定義上下文和跟蹤資源管理器
為什么此性能問題僅在周二晚上 2:00 AM 從巴西 IP 地址發生?這些困難(但常見)的性能問題可以通過 Scout 最強大的功能之一來解決:與用戶定義的自定義上下文結合使用的跟蹤資源管理器。
使用定義的自定義上下文允許您告訴我們您需要查看的內容。值得投入 在此處注冊 14 天免費試用(無需信用卡) 以獲得監控超能力!默認情況下,您將看到的唯一上下文字段是 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
【相關推薦:在此處注冊 14 天免費試用(無需信用卡)】