使用 Scout APM 监控您的 Laravel 应用(赞助商)

发布时间 作者

Monitoring Your Laravel App with Scout APM (sponsor) image

在 Scout APM,我们很高兴推出对 Laravel 应用的支持。多年来,我们一直在监控数千个 Ruby、Python 和 Elixir 应用,我们很高兴将我们的以开发者为中心的工具引入 PHP 社区。以下是如何在几分钟内开始使用 Scout 的概述。

设置

要开始监控您的 Laravel 应用,您首先需要一个 Scout 帐户。如果您还没有帐户,您可以 在此注册 14 天免费试用(无需信用卡)

接下来,将低开销监控代理添加到项目的依赖项中,这可以通过在 shell 中执行单个命令来完成

composer require scoutapp/scout-apm-laravel

此命令将安装两个包:scout-apm-laravelscout-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 安装或故障排除安装问题的更多信息,请 查看文档 或向我们发送电子邮件至 [email protected],我们将很乐意提供帮助。

从哪里开始?

因此,您创建了一个 Scout 帐户,连接了监控代理,但是从哪里开始诊断应用程序的性能问题呢?让我们看一下 Scout 的主要功能,这些功能可以帮助您快速了解性能问题。

主要概述页面

当您登录 Scout 时,首先看到的是概述页面(如下所示),它提供了一个清晰、简洁的应用程序运行状况和性能快照,一目了然。

图表高度可配置,允许您更改时间段并切换要查看的指标。它还具有一个简洁的拖放工具(如下所示),允许您在要详细探索的区域周围绘制一个框。当您绘制这些框时,将动态加载一个弹出窗口,显示在此时间段内访问的所有端点。当您在图表上看到性能峰值并想查看原因时,这尤其有用。

见解标签

如果您是第一次尝试使用 Scout,那么见解标签是一个很好的起点。在这里,我们有一组算法,这些算法分析您的项目以识别潜在的 **n+1 查询和慢查询**。这些为您提供了性能修复的“低垂果实”,这些修复通常可以立即提高应用程序的性能。

端点和跟踪

Scout 主要在两个级别提供应用程序性能指标。首先,从 **端点** 的角度来看。例如,平均而言,访问此端点需要多长时间,以及时间在何处花费的细分?

如果您看一下下面的屏幕截图,您可以清楚地看到,在访问此 ForgetPasswordController 端点的 3 次情况下,2,371 毫秒的平均请求时间的 78% 花费在控制器层,表明如果我们想尝试改进此缓慢的端点,这将是第一个调查的地方。

Scout 主要呈现指标的第二个角度是在 **跟踪** 级别。例如,在某人进行的此特定 Web 请求期间,完成请求需要多长时间,以及请求的哪些级别消耗了最多的时间等等。查看 UserController 的更新操作的跟踪,我们可以看到在这种情况下,98% 的时间花在了 SQL 层,并且大部分时间花在了顶行中对查询的 2 次调用上。如果我们单击该 SQL 按钮,我们可以看到一个回溯,看看我们是否可以改进查询。

您将在 Scout 中花费大部分时间在这些页面上,它们为您提供了在尝试了解性能问题时必不可少的可见性。您可以通过直接从主要概述页面和见解标签进入 **端点** 和 **跟踪** 页面,也可以通过单击页面顶部的 **Web 端点** 链接(如下所示)来访问这些页面。

超越基础

现在我们已经介绍了 Scout 的基础知识,并向您展示了您通常每天都会使用的系统的主要区域,现在让我们将注意力转移到一些更高级的功能,这些功能使 Scout 在 APM 领域中领先一步。

错误监控

无论您使用 SentryHoneybadgerBugsnag 还是 Rollbar 进行错误监控,我们都已为您准备好了!Scout 与这些流行的服务无缝集成,让您可以在主要概述页面上集中管理所有监控。

无论您使用哪项服务,设置过程都类似,只需要 在 Scout 的设置屏幕上添加 API 令牌 即可。

自定义上下文和跟踪资源管理器

为什么此性能问题仅在星期二凌晨 2:00 从巴西 IP 地址出现?这些难以解决(但很常见)的性能问题可以通过 Scout 最强大的功能之一来解决:与 *用户定义* 的 **自定义上下文** 相结合的 **跟踪资源管理器**。

使用 **定义的自定义** 上下文允许 *您* 告诉我们您需要看到的内容。并且,投入相对 少量时间进行设置 绝对值得,因为它可以为您带来监控超能力!默认情况下,您将看到的唯一上下文字段是 URI 和主机名,如您在下面看到的,但这些字段可以自定义为任何您想要的内容。

**跟踪资源管理器** 的多过滤器图表(如上所示)允许您检查符合您定义的条件的端点,然后您可以在屏幕的 *事务跟踪* 部分中查看所有与这些过滤器匹配的跟踪。例如,您可能想查看特定用户的 Web 请求,或者查看特定计划大小的所有用户的 Web 请求,或者查看来自特定地区的用户的 Web 请求。使用自定义上下文,这些操作在跟踪资源管理器中很容易完成,它们可以帮助您解决那些难以诊断、耗时的性能问题。

部署跟踪

您是否注意到,最近一次部署后,突然出现了性能问题?在部署期间,用户体验如何?使用我们的 **部署跟踪** 功能,您就能找到答案。此功能会在主要概览图表上添加一个火箭符号,指示部署发生的时间。

部署跟踪还允许您查看部署涉及的提交次数以及提交来自哪个分支等详细信息。当您将 SHA 或部署添加到 SCOUT_REVISON_SHA 环境变量 中时,我们就可以获取所有这些信息。

告警

和所有优秀的监控解决方案一样,Scout 提供了一个复杂的 **告警系统**,您可以将其配置为在端点响应时间或内存使用量指标超过一定阈值时向特定人员发送告警。这些告警将在主要概览图表上显示为警告符号,并会发送通知。

默认情况下,告警系统将通过电子邮件向通知组中的用户发送通知,但它也可以 配置为使用 Slack、VictorOps、PagerDuty 等第三方服务,使用我们的 Webhook 功能。

自定义检测

您是否正在使用我们目前没有检测到的 Laravel 之外的库?如果是,首先,请告知我们的支持团队,我们会尝试为您添加支持。同时,您也可以自己添加一些 **自定义检测**,这 非常容易上手,并确保您可以完全了解整个应用程序。

下一步

如您所见,Scout APM 为 PHP 和 Laravel 社区带来了一个非常成熟的 APM 监控解决方案。我们简洁的 UI 和深入的检测可以帮助您快速直击性能问题的核心,同时由于我们的灵活的基于交易的定价结构,也保持了价格实惠。

您是否对 **试用我们新的 PHP 监控代理** 感兴趣?如果是,请 立即注册免费试用(无需信用卡)或联系我们,解决您可能遇到的任何疑问。

***

非常感谢 Scout APM 本周赞助 Laravel News。

Eric L. Barnes photo

Eric 是 Laravel News 的创建者,自 2012 年以来一直关注 Laravel。

归档于
Cube

Laravel 新闻

加入 40,000 多名其他开发者,绝不错过新的技巧、教程等等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发者的必备代码运行器。使用 AI、自动补全和本地和生产环境的即时反馈进行微调。

Tinkerwell
No Compromises logo

No Compromises

来自 No Compromises 播客的两名经验丰富的开发者 Joel 和 Aaron 现在可以为您的 Laravel 项目提供服务。 ⬧ 固定费用 $7500/月。 ⬧ 无需冗长的销售流程。 ⬧ 无需签订合同。 ⬧ 100%退款保证。

No Compromises
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

正在使用旧版本的 Laravel?立即使用自动化的 Laravel 升级和代码现代化功能,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

让经验丰富的 Laravel 开发者(具有 4-6 年经验)以每月 $2500 的价格为您的项目提供支持。获得 160 小时的专享专业知识和 15 天无风险试用期。立即安排通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得 Lucky - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar: Laravel 电子商务

Laravel 的电子商务。一个开源包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar: Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 职位板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS 启动套件

SaaSykit 是一个 Laravel SaaS 启动套件,它包含运行现代 SaaS 所需的所有功能。支付、漂亮的结帐、管理面板、用户仪表板、身份验证、即用型组件、统计信息、博客、文档等等。

SaaSykit: Laravel SaaS 启动套件
Rector logo

Rector

您无缝升级 Laravel、降低成本和加快创新的合作伙伴,助力企业成功。

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成,增强您的 PHP 应用程序,使开发者能够轻松高效地构建应用程序。支持事务性、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。探索灵活、现代的 MongoDB 数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

在您的 Laravel 应用程序中添加 Swagger UI

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包向您的 Laravel 应用程序添加评论

阅读文章