Sentry 如何提升 Laravel 应用性能

发布日期 作者

How Sentry Can Improve Your Laravel Application image

Sentry 是一个流行的错误和 应用程序性能监控 平台,可以轻松集成到 Laravel 应用中,帮助您快速识别和修复性能问题。使用 Sentry,您可以捕获应用中发生的错误、崩溃和性能问题,并收到提醒以采取立即措施。

在本篇文章中,我们将介绍如何在 Laravel 应用中安装和设置 Sentry,以及如何探索 Sentry 的一些有价值的特性,这些特性有助于提高应用性能。

如何在 Laravel 应用中安装和设置 Sentry

使用 Sentry 入门只需 5 行代码 - 无需代理。Sentry 的自动检测功能会捕获事务和跨度,让您更容易追踪应用中发生的所有问题的根本原因。

要开始监控您的 Laravel 应用,请使用 Composer 安装 sentry/sentry-laravel

composer `require sentry/sentry-laravel

然后,在 App/Exceptions/Handler.php 中添加 Sentry 报告

public function register(): void
{
$this->reportable(function (Throwable $e) {
\Sentry\Laravel\Integration::captureUnhandledException($e);
});
}

最后,运行此 Artisan 命令来配置 Sentry DSN

php artisan sentry:publish --dsn=<paste-your-DSN-here>

查看文档 以获取最新说明。现在,为了激活 Sentry 的性能监控,您需要通过以下方法之一配置事务的采样率:

  1. 使用 SDK 配置中的 traces_sample_rate 选项为所有事务设置统一的采样率,取值范围为 0 到 1 之间的数字。(例如,要发送 20% 的事务,将 traces_sample_rate 设置为 0.2。)
  2. 通过为 traces_sampler 配置选项提供一个函数,根据事务本身和捕获事务的上下文来控制采样率。

这两个选项是相互排斥的。如果您同时设置这两个选项,traces_sampler 将优先生效。

// Specify a fixed sample rate:
'traces_sample_rate' => 0.2,
// Or provide a custom sampler:
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
// return a number between 0 and 1
},

在测试期间,将 traces_sample_rate 设置为 1.0,因为这样可以确保每个事务都会直接发送到 Sentry。

测试完成后,建议您在生产环境中降低此值,可以通过降低 traces_sample_rate 值,或切换到使用 traces_sampler 动态采样和过滤事务来实现。

就这样!请查看此 文档 以获取更多有关如何提高 PHP 应用响应时间的技巧。

使用 Sentry 检测性能问题

如果任其发展,性能问题可能会愈演愈烈,最终演变成严重的错误。在 Sentry 中,您只需几步即可采取行动(在为时已晚之前) - 您可以直接从您的问题提要中对 性能问题 进行分类、分配和解决。

Sentry 会向您发送有关应用中延迟问题的提醒,您可以直接修复这些问题 - 无需破译仪表板或研究跨度树。

Sentry 检测到许多 后端性能问题,例如 N+1 数据库查询、连续数据库查询和慢速数据库查询。使用 Sentry,您可以

  • 通过电子邮件或您最喜欢的协作工具(如 Slack、Pagerduty 或 Jira)收到有关性能问题的通知。
  • 在浓缩的跨度树中查看最相关的跨度,以更快速地找到代码中的根本原因(类似于错误问题的堆栈跟踪。您还可以展开跨度瀑布图,以查看更多问题证据。
  • 直接在问题提要中对问题进行分类、分配和解决。

无需手动监控事务随时间的变化,您可以让 Sentry 准确告诉您代码中的问题所在,以便您快速采取行动。

了解您的整体应用健康状况

除了提醒用户有关特定性能问题之外,Sentry 还提供了有关缓慢事务、数据库查询和 HTTP 请求的详细信息,这些信息都包含在 事务摘要 中。这为您提供了关于您所关心性能指标的高级概览 - 无论是事务的 p95 持续时间还是失败率。

您还可以通过 可疑跨度 来减少故障排除和手动搜索日志的工作量,这使得更容易找到对用户影响最大的慢速请求。

为了全面了解您的应用健康状况,您还可以创建自定义仪表板,以便围绕您的团队认为对业务至关重要的性能 KPI 达成一致,并查看任何 趋势,这些趋势表明您应用的性能随着时间的推移发生了重大变化。

使用 Sentry 监控 Laravel 应用的好处

连接后端和前端问题

Sentry 的 分布式追踪 功能允许后端和前端问题之间的无缝连接,使开发人员能够有效地监控和诊断应用中的问题。

您可以追踪缓慢加载的页面,一直回到性能不佳的 API 调用 - 并显示任何相关的错误 - 以更快地找到性能问题的根本原因。

如果您在 Javascript 项目中使用 Sentry Performance,您还可以连接追踪,以获得完整的可见性。您可以通过以下方法执行此操作:

  1. 对于在后端开始的请求,通过 在 HTML 模板中添加一个元标签,该标签包含追踪信息。
  2. 对于从 JavaScript 开始的请求,通过 SDK 在对后端的请求中设置一个标头

代码级洞察的性能分析

Sentry 的最新功能 性能分析 提供了生产环境中性能瓶颈的代码级洞察,让您能够加速故障排除并优化资源消耗。它现已可供 PHP、Python、Node、Android 和 iOS 用户使用。

性能分析允许您

  • 深入分析导致延迟问题的精确函数和代码行,无需编写性能测试或搜索跨度。
  • 使用火焰图识别热代码路径,以便在用户感受到慢速请求的影响之前优化资源消耗。
  • 在任何环境中测试您的应用程序性能,包括生产环境,并且开销最小。
  • 通过对代码执行的洞察来填补缺失的检测空白 - 无需手动添加跨度。

通过性能监控改善您的 Laravel 应用程序

Sentry 是一个强大的工具,可以帮助您通过快速识别问题来改进 Laravel 应用程序。通过遵循本文中概述的步骤并探索 Sentry 的一些功能,您可以确保您的 Laravel 应用程序以最佳性能运行,并为您的用户提供从头到尾的出色体验。

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

绝不妥协

Joel 和 Aaron,来自 No Compromises 播客的两名经验丰富的开发人员,现可为您的 Laravel 项目聘用。⬧ 固定价格 7500 美元/月。⬧ 无冗长的销售流程。⬧ 无合同。⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

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

Kirschbaum
Shift logo

Shift

正在运行旧版 Laravel?即时、自动化的 Laravel 升级和代码现代化,使您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

只需 2500 美元/月,即可为您的项目配备经验丰富的 Laravel 开发人员,拥有 4-6 年的经验。获得 160 小时的专业知识和 15 天无风险试用。立即预约通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得好运 - 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 提示构建 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 应用程序添加评论

阅读文章