我最近有机会讨论巴西开发团队对 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 inspectorlaravelmiddlewareinspectoroctanemiddleware; 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' => [
...,
//InspectorLaravelMiddlewareWebRequestMonitoring::class,
InspectorLaravelMiddlewareInspectorOctaneMiddleware::class,
],
'api' => [
...,
//InspectorLaravelMiddlewareWebRequestMonitoring::class,
InspectorLaravelMiddlewareInspectorOctaneMiddleware::class,
],
]
就是这样。
您的申请将继续照常受到监控。
其他 newrelic 瓶颈
巴西开发团队更深入地研究了驱使他们寻找 newrelic 的有效替代品的动机。
他们还想监控其他内部应用程序。不太重要但公司将从实时监控数据中受益的应用程序。
问题在于让 newrelic 在其他应用程序上运行的复杂性,更严重的是成本的大幅增加。
监控其他主机的成本、与其他用户共享监控环境的成本以及配置和使用平台的复杂性。
对我来说,这是一次富有启发性的讨论。我从未听说过有关各种用例的所有这些细节,在这些用例中,inspector 提供的设计和定价政策比针对大公司的平台更方便。
所以,谢谢你们,我很高兴与像你们这样思想开放的开发者合作。 inspector 社区持续发展。
免费监控您的 php 应用程序
inspector是一款专为软件开发人员设计的代码执行监控工具。您不需要在服务器级别安装任何内容,只需安装 composer 包 就可以开始了。
inspector 超级简单且 php 友好。您可以尝试我们的 laravel 或 symfony 包。
如果您正在寻找 http 监控、数据库查询见解以及将警报和通知转发到您首选消息传递环境的功能,请免费尝试 inspector。注册您的帐户。
或在网站上了解更多信息:https://inspector.dev
以上就是用于监控 Laravel Octane 的 NewRelic 替代方案的详细内容,更多请关注php中文网其它相关文章!