」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 用於監控 Laravel Octane 的 NewRelic 替代方案

用於監控 Laravel Octane 的 NewRelic 替代方案

發佈於2024-09-01
瀏覽:649

我最近有機會討論巴西開發團隊對 Inspector 的採用。當時他們正在使用 NewRelic 來監控他們的應用程序,但發現它與 Laravel Octane 不相容。

自從 Laravel Octane 發布以來,我就徹底研究了它的內部動態,以確保 Inspector Laravel 套件繼續正常運作。由於它的特性,我一直懷疑 Octane 會給「基礎設施導向」的監控平台帶來很多麻煩。

讓我給您一些技術細節。

Laravel Octane 簡介

Laravel Octane 是 Laravel 的高效能應用伺服器,旨在大幅提升 Laravel 應用程式的效能。它在 Laravel 8.x 中引入,提供了一種使用 Swoole 和 RoadRunner 等高效能應用程式伺服器為 Laravel 應用程式提供服務的方法。

正如官方文件所說:

Octane 會啟動您的應用程式一次,將其保留在記憶體中,然後以超音速向其提供請求。

您的 Laravel 應用程式在長時間運行的進程中運行,這可能會為您電腦上安裝的監控代理帶來問題,無法了解其中發生的情況。

檢查員監控 Laravel Octane

這是理解為什麼 Inspector「是為開發人員構建的」的完美範例。

要將您的應用程式與 Inspector 連接,您只需要 Laravel 套件。您不需要與底層基礎設施進行任何互動。無論您的應用程式如何運行,Inspector 都會與您的框架集成,而不是與伺服器集成。

這有多容易?

安裝軟體包後您應該將 Octane 專用中間件附加到應用程式路由:

拉拉維爾 11

use \Inspector\Laravel\Middleware\InspectorOctaneMiddleware;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        // routes
    )
    ->withMiddleware(function (Middleware $middleware) {
        // Append the middleware
        $middleware->appendToGroup('web', InspectorOctaneMiddleware::class)
            ->appendToGroup('api', InspectorOctaneMiddleware::class);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

Laravel
/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        ...,
        //\Inspector\Laravel\Middleware\WebRequestMonitoring::class,
        \Inspector\Laravel\Middleware\InspectorOctaneMiddleware::class,
    ],

    'api' => [
        ...,
        //\Inspector\Laravel\Middleware\WebRequestMonitoring::class,
        \Inspector\Laravel\Middleware\InspectorOctaneMiddleware::class,
    ],
]

就是這樣。

您的申請將繼續照常受到監控。

NewRelic Alternative For Monitoring Laravel Octane

其他 NewRelic 瓶頸

巴西開發團隊更深入研究了驅使他們尋找 NewRelic 的有效替代品的動機。

他們還想監控其他內部應用程式。不太重要但公司將從即時監控數據中受益的應用程式。

問題在於使 NewRelic 在其他應用程式上運行的複雜性,甚至更嚴重的是成本的大幅增加。

監控其他主機的成本、與其他使用者分享監控環境的成本以及配置和使用平台的複雜性。

對我來說,這是一次富有啟發性的討論。我從未聽說過有關各種用例的所有這些詳細信息,在這些用例中,Inspector 提供的設計和定價策略比針對大公司的平台更方便。

所以,謝謝你們,我很高興與像你們這樣思想開放的開發者合作。 Inspector 社群不斷發展。

免費監控您的 PHP 應用程式

Inspector是專為軟體開發人員設計的程式碼執行監控工具。您無需在伺服器層級安裝任何內容,只需安裝 composer 軟體包 即可開始使用。

Inspector 超級簡單且 PHP 友善。您可以嘗試我們的 Laravel 或 Symfony 套件。

如果您正在尋找 HTTP 監控、資料庫查詢見解以及將警報和通知轉發到您首選訊息傳遞環境的功能,請免費嘗試 Inspector。註冊您的帳戶。

或在網站上了解更多:https://inspector.dev

NewRelic Alternative For Monitoring Laravel Octane

版本聲明 本文轉載於:https://dev.to/inspector/newrelic-alternative-for-monitoring-laravel-octane-lml?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • JavaScript 中的提升
    JavaScript 中的提升
    什么是 JavaScript 提升? 提升是指 JavaScript 中在执行之前进行声明的过程。首先处理变量和函数声明。因此,即使变量在声明之前被引用,也不会导致错误,而是返回 undefined。对于函数声明,整个函数被提升,这意味着它可以在代码中定义之前使用。此过程在执行开始...
    程式設計 發佈於2024-11-06
  • 如何在 Go 中同時選擇緩衝發送和無緩衝接收通道?
    如何在 Go 中同時選擇緩衝發送和無緩衝接收通道?
    同時選擇 Go 發送和接收通道在 Go 中,可以使用 select 語句在通道上執行非阻塞 I/O 操作。然而,在處理緩衝發送通道(chan
    程式設計 發佈於2024-11-06
  • 如何將列表列表轉換為統一的 NumPy 陣列?
    如何將列表列表轉換為統一的 NumPy 陣列?
    將清單清單轉換為NumPy 陣列資料分析中的一個常見任務是將清單清單轉換為NumPy 陣列高效率的數值運算。這個數組可以透過將每個列表分配給一行來形成,列表中的每個元素佔據一列。 選項 1:陣列陣列如果子清單有不同的長度,適當的方法是建立陣列的陣列。這保留了清單清單的原始結構,從而可以輕鬆檢索特定元...
    程式設計 發佈於2024-11-06
  • 前端的頂級設計模式
    前端的頂級設計模式
    在过去的几个月里,我为前端开发人员分享了一些流行的设计模式。其中包括 Singleton、Facade、Observer、Publisher/Subscriber 等模式。今天,我想总结一下这些模式的一些要点和好处,以及如何使用它们来改进您的前端开发流程。 什么是设计模式 设计模式是...
    程式設計 發佈於2024-11-06
  • ServBay版本.pdate公告
    ServBay版本.pdate公告
    我們很高興地宣布新版本 1.4.4 已經到來!讓我們來看看新增的備受期待的新功能。 新功能 CA和憑證管理: 統一SSL憑證管理平台:全新的憑證管理平台,旨在簡化憑證申請與管理流程。 ServBay User CA 和 ServBay Public CA: 引入 ...
    程式設計 發佈於2024-11-06
  • Spring框架中的控制反轉
    Spring框架中的控制反轉
    控制反转(IoC)和依赖注入(DI)是Spring框架中的两个基本概念。传统上,对象负责创建和管理它们自己的依赖关系。然而,IoC 通过将对象创建和依赖管理的控制权移交给像 Spring 这样的框架来翻转这一责任。 这种转变有几个优点: 更简单的实现交换:只需对代码库进行最小的更改即可交换不同的实现...
    程式設計 發佈於2024-11-06
  • 使用 React 建立遞歸檔案系統:深入探討
    使用 React 建立遞歸檔案系統:深入探討
    簡介:在 React 中建構遞歸檔案系統 在現代 Web 開發中,建立互動式動態檔案系統是常見的要求。無論是管理文件、組織專案或建構複雜的資料結構,擁有強大的文件系統都至關重要。在這篇文章中,我們將探討如何在 React 中建立遞歸檔案系統,並專注於可以新增、重新命名或刪除的嵌套資...
    程式設計 發佈於2024-11-06
  • SQL 查詢速度慢?使用此技術提高應用程式的效能
    SQL 查詢速度慢?使用此技術提高應用程式的效能
    挑戰 在我的應用程式(React Spring Boot Oracle)中,處理大型資料集導致處理時間極為緩慢。我需要一種解決方案來提高效能而不影響準確性或完整性。 解決方案:NTILE 並行處理 NTILE 是一個功能強大的 SQL 視窗函數,旨在將結果集劃分為...
    程式設計 發佈於2024-11-06
  • 關於測試覆蓋率的真相
    關於測試覆蓋率的真相
    一個強而有力的真理。 看下面這段簡單明了的程式碼: function sum(a, b) { return a b; } 現在,讓我們為它寫一些測試: test('sum', () => { expect(sum(1, 2)).toBe(3); expect(...
    程式設計 發佈於2024-11-06
  • 為什麼我的 OpenGL 三角形無法在 Go 中渲染?調查頂點緩衝區問題。
    為什麼我的 OpenGL 三角形無法在 Go 中渲染?調查頂點緩衝區問題。
    Go 中的OpenGL 頂點緩衝區問題在Go 中嘗試使用OpenGL 顯示三角形時,使用者遇到了頂點緩衝區問題緩衝區無法渲染形狀。 Go 程式碼源自於教程,但與 C 程式碼不同的是,它沒有產生任何輸出。 問題原因問題的根本原因位於傳遞給 vertexAttrib.AttribPointer() 的參...
    程式設計 發佈於2024-11-06
  • 為什麼在 Linux 32 位元發行版上的 Go 程式中設定 `ulimit -n` 會導致「參數無效」錯誤?
    為什麼在 Linux 32 位元發行版上的 Go 程式中設定 `ulimit -n` 會導致「參數無效」錯誤?
    如何在 Go 程式中設定 ulimit -n? 問題使用者嘗試在 Go 程式中設定 ulimit -n使用 setrlimit 和 getrlimit 系統呼叫將其限制在程式內而不是全域。然而,在嘗試設定該值時出現錯誤,提示「參數無效」。 解決方案發現問題是由於 Linux 32 的 Getrlim...
    程式設計 發佈於2024-11-06
  • 如何在Python中創建無限深度的動態嵌套字典?
    如何在Python中創建無限深度的動態嵌套字典?
    未定義深度的動態嵌套字典在涉及複雜多層資料結構的場景中,經常會遇到變數嵌套字典的需求水平。雖然硬編碼插入語句是一種潛在的解決方案,但當事先未知嵌套深度時,這種方法是不切實際的。 要克服此限制,請考慮利用 Python 的 collections.defaultdict,它允許動態建立字典。可以使用下...
    程式設計 發佈於2024-11-06
  • Python 變得強大:輕鬆程式設計的初學者指南
    Python 變得強大:輕鬆程式設計的初學者指南
    Python 是一門強大的程式語言,文法簡單,應用廣泛。安裝 Python 後,可以學習其基本語法,包括變數賦值、資料類型和流程控制。實戰案例中,我們透過蒙特卡羅模擬計算圓周率,展示了 Python 在數值計算中的能力。此外,Python 擁有豐富的函式庫,涵蓋機器學習、資料分析和網路開發等領域,體...
    程式設計 發佈於2024-11-06
  • 如何在沒有 jQuery 的情況下監聽動態建立的元素的事件?
    如何在沒有 jQuery 的情況下監聽動態建立的元素的事件?
    在沒有 jQuery 的情況下監聽動態創建的元素的事件使用外部頁面時,向動態生成的元素添加事件監聽器可能具有挑戰性。在這種情況下,委派事件處理至關重要。 一種方法是使用 event.target 屬性來檢查單擊或觸發的元素是否屬於所需類型。這是一個例子:document.querySelector(...
    程式設計 發佈於2024-11-06
  • 利用 Snipbyte 的高階考勤管理系統優化勞動力效率
    利用 Snipbyte 的高階考勤管理系統優化勞動力效率
    在當今的商業環境中,有效管理員工出勤、輪班和工資單可以決定組織的成功或失敗。準確的考勤追蹤不僅可以確保營運順利進行,還有助於提高生產力。在 Snipbyte,我們專注於提供一流的基於網路的解決方案來增強業務流程,包括我們的高級考勤管理系統。 為什麼選擇Snipbyte的考勤管理系統? 我們的考勤...
    程式設計 發佈於2024-11-06

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3