sentry-php-sdk by getsentry/sentry-for-ai
npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-php-sdk一个具有明确导向的向导,用于扫描您的 PHP 项目并指导您完成完整的 Sentry 设置。
sentry/sentry、sentry/sentry-laravel、sentry/sentry-symfony 或 Sentry + 任何 PHP 框架注意: 下面的 SDK 版本和 API 反映了撰写本文时的 Sentry 文档(sentry/sentry 4.x, sentry/sentry-laravel 4.x, sentry/sentry-symfony 5.x)。在实施前,请务必对照 docs.sentry.io/platforms/php/ 进行验证。
在提出建议之前,运行以下命令来了解项目:
# 检查现有的 Sentry
grep -i sentry composer.json composer.lock 2>/dev/null
# 检测框架
cat composer.json | grep -E '"laravel/framework"|"symfony/framework-bundle"|"illuminate/'
# 通过文件系统标记确认框架
ls artisan 2>/dev/null && echo "Laravel detected"
ls bin/console 2>/dev/null && echo "Symfony detected"
# 检测队列系统
grep -E '"laravel/horizon"|"symfony/messenger"' composer.json 2>/dev/null
# 检测 AI 库
grep -E '"openai-php|"openai/|anthropic|llm' composer.json 2>/dev/null
# 检查配套的前端
ls frontend/ resources/js/ assets/ 2>/dev/null
cat package.json 2>/dev/null | grep -E '"react"|"svelte"|"vue"|"next"'
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
需要注意的事项:
composer.json 中是否已经存在 sentry/sentry(或 -laravel / -symfony)?如果是,检查初始化调用是否存在 —— 可能只需要功能配置。artisan 且 composer.json 中有 laravel/framework)、Symfony(有 bin/console 且 composer.json 中有 symfony/framework-bundle)或纯 PHP。根据您的发现,提出具体的建议。不要问开放式问题 —— 直接给出推荐方案:
始终推荐(核心覆盖范围):
MonologHandler)检测到时推荐:
excimer PHP 扩展,仅限 Linux/macOS)TraceMetrics API)推荐矩阵:
| 功能 | 推荐时机... | 参考文档 |
|---|---|---|
| 错误监控 | 始终 —— 不可或缺的基线 | ${SKILL_ROOT}/references/error-monitoring.md |
| 追踪 | 检测到 Laravel/Symfony,或需要手动跨度 | ${SKILL_ROOT}/references/tracing.md |
| 性能分析 | 生产环境 + 可用 excimer 扩展 | ${SKILL_ROOT}/references/profiling.md |
| 日志记录 | 始终;Laravel/Symfony 使用 Monolog | ${SKILL_ROOT}/references/logging.md |
| 指标 | 需要业务事件或 SLO 跟踪(测试版) | ${SKILL_ROOT}/references/metrics.md |
| 定时任务 | 检测到调度器或 cron 模式 | ${SKILL_ROOT}/references/crons.md |
建议:"我推荐错误监控 + 追踪 [+ 日志记录]。还需要性能分析、定时任务或指标吗?"
# 纯 PHP
composer require sentry/sentry "^4.0"
# Laravel
composer require sentry/sentry-laravel "^4.0"
# Symfony
composer require sentry/sentry-symfony "^5.0"
系统要求:
ext-json、ext-mbstring、ext-curl(全部必需)excimer PECL 扩展(仅限 Linux/macOS —— 性能分析必需)将 \Sentry\init() 放在入口点(index.php、bootstrap.php 或等效文件)的顶部,在任何应用程序代码之前:
<?php
require_once 'vendor/autoload.php';
\Sentry\init([
'dsn' => $_SERVER['SENTRY_DSN'] ?? '',
'environment' => $_SERVER['SENTRY_ENVIRONMENT'] ?? 'production',
'release' => $_SERVER['SENTRY_RELEASE'] ?? null,
'send_default_pii' => true,
'traces_sample_rate' => 1.0,
'profiles_sample_rate' => 1.0,
'enable_logs' => true,
]);
// rest of application...
步骤 1 — 在 bootstrap/app.php 中注册异常处理器:
use Sentry\Laravel\Integration;
return Application::configure(basePath: dirname(__DIR__))
->withExceptions(function (Exceptions $exceptions) {
Integration::handles($exceptions);
})->create();
步骤 2 — 发布配置并设置 DSN:
php artisan sentry:publish --dsn=YOUR_DSN
这将创建 config/sentry.php 并将 SENTRY_LARAVEL_DSN 添加到 .env。
步骤 3 — 配置 .env:
SENTRY_LARAVEL_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
SENTRY_TRACES_SAMPLE_RATE=1.0
SENTRY_PROFILES_SAMPLE_RATE=1.0
有关完整的 Laravel 配置选项,请阅读
${SKILL_ROOT}/references/laravel.md。
步骤 1 — 在 config/bundles.php 中注册 bundle(Symfony Flex 自动完成):
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
步骤 2 — 创建 config/packages/sentry.yaml:
sentry:
dsn: '%env(SENTRY_DSN)%'
options:
environment: '%env(APP_ENV)%'
release: '%env(SENTRY_RELEASE)%'
send_default_pii: true
traces_sample_rate: 1.0
profiles_sample_rate: 1.0
enable_logs: true
步骤 3 — 在 .env 中设置 DSN:
SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
有关完整的 Symfony 配置选项,请阅读
${SKILL_ROOT}/references/symfony.md。
启用最多功能且具有合理默认值的完整初始化:
\Sentry\init([
'dsn' => $_SERVER['SENTRY_DSN'] ?? '',
'environment' => $_SERVER['SENTRY_ENVIRONMENT'] ?? 'production',
'release' => $_SERVER['SENTRY_RELEASE'] ?? null,
'send_default_pii' => true,
// 追踪(在高流量生产环境中可降低到 0.1–0.2)
'traces_sample_rate' => 1.0,
// 性能分析 —— 需要 excimer 扩展(仅限 Linux/macOS)
'profiles_sample_rate' => 1.0,
// 结构化日志(sentry/sentry >=4.12.0)
'enable_logs' => true,
]);
逐个功能进行指导。加载参考文档,按照其步骤操作,在继续之前进行验证:
| 功能 | 参考文件 | 加载时机... |
|---|---|---|
| 错误监控 | ${SKILL_ROOT}/references/error-monitoring.md | 始终(基线) |
| 追踪 | ${SKILL_ROOT}/references/tracing.md | HTTP 处理器 / 分布式追踪 |
| 性能分析 | ${SKILL_ROOT}/references/profiling.md | 对性能敏感的生产环境 |
| 日志记录 | ${SKILL_ROOT}/references/logging.md | 始终;Laravel/Symfony 使用 Monolog |
| 指标 | ${SKILL_ROOT}/references/metrics.md | 业务 KPI / SLO 跟踪(测试版) |
| 定时任务 | ${SKILL_ROOT}/references/crons.md | 检测到调度器 / cron 模式 |
对于每个功能:读取 ${SKILL_ROOT}/references/<feature>.md,严格按照步骤操作,验证其是否正常工作。
\Sentry\init() 选项(纯 PHP)| 选项 | 类型 | 默认值 | 用途 |
|---|---|---|---|
dsn | `string | bool | null` |
environment | `string | null` | $_SERVER['SENTRY_ENVIRONMENT'] |
release | `string | null` | $_SERVER['SENTRY_RELEASE'] |
send_default_pii | bool | false | 包含请求头、Cookie、IP |
sample_rate | float | 1.0 | 错误事件采样率(0.0–1.0) |
traces_sample_rate | `float | null` | null |
traces_sampler | `callable | null` | null |
profiles_sample_rate | `float | null` | null |
enable_logs | bool | false | 将结构化日志发送到 Sentry(>=4.12.0) |
max_breadcrumbs | int | 100 | 每个事件的最大面包屑数 |
attach_stacktrace | bool | false | 在 captureMessage() 上附加堆栈跟踪 |
in_app_include | string[] | [] | 属于您应用程序的路径前缀 |
in_app_exclude | string[] | [] | 第三方代码的路径前缀(在追踪中隐藏) |
ignore_exceptions | string[] | [] | 永不报告的异常 FQCN |
ignore_transactions | string[] | [] | 永不报告的事务名称 |
error_types | `int | null` | error_reporting() |
capture_silenced_errors | bool | false | 捕获被 @ 操作符抑制的错误 |
max_request_body_size | string | "medium" | "none" / "small" / "medium" / "always" |
before_send | callable | identity | fn(Event $event, ?EventHint $hint): ?Event —— 返回 null 以丢弃 |
before_breadcrumb | callable | identity | fn(Breadcrumb $b): ?Breadcrumb —— 返回 null 以丢弃 |
trace_propagation_targets | `string[] | null` | null |
debug | bool | false | 详细的 SDK 输出(对于结构化输出,请改用 PSR-3 logger 选项) |
| 变量 | 映射到 | 备注 |
|---|---|---|
SENTRY_DSN | dsn | 也使用 $_SERVER['SENTRY_DSN'] |
SENTRY_ENVIRONMENT | environment | |
SENTRY_RELEASE | release | 也读取 $_SERVER['AWS_LAMBDA_FUNCTION_VERSION'] |
SENTRY_SPOTLIGHT | spotlight |
Laravel 注意: 使用
SENTRY_LARAVEL_DSN(回退到SENTRY_DSN)。其他选项遵循SENTRY_TRACES_SAMPLE_RATE、SENTRY_PROFILES_SAMPLE_RATE等。
测试 Sentry 是否正在接收事件:
// 触发一个真实的错误事件 —— 在几秒钟内检查 Sentry 仪表板
throw new \Exception('Sentry PHP SDK test');
或者进行非崩溃性检查:
\Sentry\captureMessage('Sentry PHP SDK test');
Laravel:
php artisan sentry:test
如果没有显示任何内容:
\Sentry\init([
'dsn' => '...',
'logger' => new \Sentry\Logger\DebugStdOutLogger(),
]);
https://<key>@o<org>.ingest.sentry.io/<project>)SENTRY_DSN(或 SENTRY_LARAVEL_DSN)环境变量完成 PHP 设置后,检查是否有缺少 Sentry 的配套前端:
ls frontend/ resources/js/ assets/ public/ 2>/dev/null
cat package.json frontend/package.json 2>/dev/null \
| grep -E '"react"|"svelte"|"vue"|"next"|"nuxt"'
如果存在没有 Sentry 的前端,建议使用匹配的技能:
| 检测到的前端 | 建议的技能 |
|---|---|
| React / Next.js | sentry-react-sdk |
| Svelte / SvelteKit | sentry-svelte-sdk |
| Vue / Nuxt | 使用 @sentry/vue —— 参见 docs.sentry.io/platforms/javascript/guides/vue/ |
| 其他 JS/TS | sentry-react-sdk(涵盖通用浏览器 JS 模式) |
| 问题 | 解决方案 |
|---|---|
| 事件未出现 | 启用 logger 选项(DebugStdOutLogger),验证 DSN,检查运行进程中的环境变量 |
| DSN 格式错误 | 格式:https://<key>@o<org>.ingest.sentry.io/<project> |
| Laravel 异常未捕获 | 确保 Integration::handles($exceptions) 在 bootstrap/app.php 中 |
| Symfony 异常未捕获 | 验证 SentryBundle 已在 config/bundles.php 中注册 |
| 没有追踪出现 | 设置 traces_sample_rate(非 null);确认自动检测已启用 |
| 性能分析不工作 | 需要 excimer 扩展(仅限 Linux/macOS;Windows 不可用);需要 traces_sample_rate > 0 |
enable_logs 不工作 | 需要 sentry/sentry >= 4.12.0、sentry/sentry-laravel >= 4.15.0 或 sentry/sentry-symfony >= 5.4.0 |
| 队列工作器错误缺失 | 在工作器进程本身中初始化 Sentry,而不仅仅是在 Web 进程中;对于 Laravel,在工作器的 .env 中使用 SENTRY_LARAVEL_DSN |
| 事务过多 | 降低 traces_sample_rate 或使用 traces_sampler 丢弃健康检查路由 |
| 未捕获 PII | 设置 send_default_pii: true;对于 Laravel,在 config/sentry.php 中设置 send_default_pii: true |
@ 抑制的错误缺失 | 设置 capture_silenced_errors: true |
| 跨服务追踪中断 | 检查 trace_propagation_targets;确保下游服务已安装 Sentry |
每周安装次数
149
仓库
GitHub 星标数
82
首次出现
2026年3月4日
安全审计
安装于
cursor146
gemini-cli145
codex145
kimi-cli144
github-copilot144
amp144
All Skills > SDK Setup > PHP SDK
Opinionated wizard that scans your PHP project and guides you through complete Sentry setup.
sentry/sentry, sentry/sentry-laravel, sentry/sentry-symfony, or Sentry + any PHP frameworkNote: SDK versions and APIs below reflect Sentry docs at time of writing (sentry/sentry 4.x, sentry/sentry-laravel 4.x, sentry/sentry-symfony 5.x). Always verify against docs.sentry.io/platforms/php/ before implementing.
Run these commands to understand the project before making recommendations:
# Check existing Sentry
grep -i sentry composer.json composer.lock 2>/dev/null
# Detect framework
cat composer.json | grep -E '"laravel/framework"|"symfony/framework-bundle"|"illuminate/'
# Confirm framework via filesystem markers
ls artisan 2>/dev/null && echo "Laravel detected"
ls bin/console 2>/dev/null && echo "Symfony detected"
# Detect queue systems
grep -E '"laravel/horizon"|"symfony/messenger"' composer.json 2>/dev/null
# Detect AI libraries
grep -E '"openai-php|"openai/|anthropic|llm' composer.json 2>/dev/null
# Check for companion frontend
ls frontend/ resources/js/ assets/ 2>/dev/null
cat package.json 2>/dev/null | grep -E '"react"|"svelte"|"vue"|"next"'
What to note:
sentry/sentry (or -laravel / -symfony) already in composer.json? If yes, check if the init call exists — may just need feature config.artisan + laravel/framework in composer.json), Symfony (has bin/console + symfony/framework-bundle), or plain PHP.Based on what you found, present a concrete proposal. Don't ask open-ended questions — lead with a recommendation:
Always recommended (core coverage):
MonologHandler)Recommend when detected:
excimer PHP extension, Linux/macOS only)TraceMetrics API)Recommendation matrix:
| Feature | Recommend when... | Reference |
|---|---|---|
| Error Monitoring | Always — non-negotiable baseline | ${SKILL_ROOT}/references/error-monitoring.md |
| Tracing | Laravel/Symfony detected, or manual spans needed | ${SKILL_ROOT}/references/tracing.md |
| Profiling | Production + excimer extension available | ${SKILL_ROOT}/references/profiling.md |
| Logging | Always ; Monolog for Laravel/Symfony | ${SKILL_ROOT}/references/logging.md |
Propose: "I recommend Error Monitoring + Tracing [+ Logging]. Want Profiling, Crons, or Metrics too?"
# Plain PHP
composer require sentry/sentry "^4.0"
# Laravel
composer require sentry/sentry-laravel "^4.0"
# Symfony
composer require sentry/sentry-symfony "^5.0"
System requirements:
ext-json, ext-mbstring, ext-curl (all required)excimer PECL extension (Linux/macOS only — required for profiling)Place \Sentry\init() at the top of your entry point (index.php, bootstrap.php, or equivalent), before any application code:
<?php
require_once 'vendor/autoload.php';
\Sentry\init([
'dsn' => $_SERVER['SENTRY_DSN'] ?? '',
'environment' => $_SERVER['SENTRY_ENVIRONMENT'] ?? 'production',
'release' => $_SERVER['SENTRY_RELEASE'] ?? null,
'send_default_pii' => true,
'traces_sample_rate' => 1.0,
'profiles_sample_rate' => 1.0,
'enable_logs' => true,
]);
// rest of application...
Step 1 — Register exception handler in bootstrap/app.php:
use Sentry\Laravel\Integration;
return Application::configure(basePath: dirname(__DIR__))
->withExceptions(function (Exceptions $exceptions) {
Integration::handles($exceptions);
})->create();
Step 2 — Publish config and set DSN:
php artisan sentry:publish --dsn=YOUR_DSN
This creates config/sentry.php and adds SENTRY_LARAVEL_DSN to .env.
Step 3 — Configure.env:
SENTRY_LARAVEL_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
SENTRY_TRACES_SAMPLE_RATE=1.0
SENTRY_PROFILES_SAMPLE_RATE=1.0
For full Laravel configuration options, read
${SKILL_ROOT}/references/laravel.md.
Step 1 — Register the bundle in config/bundles.php (auto-done by Symfony Flex):
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
Step 2 — Createconfig/packages/sentry.yaml:
sentry:
dsn: '%env(SENTRY_DSN)%'
options:
environment: '%env(APP_ENV)%'
release: '%env(SENTRY_RELEASE)%'
send_default_pii: true
traces_sample_rate: 1.0
profiles_sample_rate: 1.0
enable_logs: true
Step 3 — Set the DSN in.env:
SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
For full Symfony configuration options, read
${SKILL_ROOT}/references/symfony.md.
Full init enabling the most features with sensible defaults:
\Sentry\init([
'dsn' => $_SERVER['SENTRY_DSN'] ?? '',
'environment' => $_SERVER['SENTRY_ENVIRONMENT'] ?? 'production',
'release' => $_SERVER['SENTRY_RELEASE'] ?? null,
'send_default_pii' => true,
// Tracing (lower to 0.1–0.2 in high-traffic production)
'traces_sample_rate' => 1.0,
// Profiling — requires excimer extension (Linux/macOS only)
'profiles_sample_rate' => 1.0,
// Structured logs (sentry/sentry >=4.12.0)
'enable_logs' => true,
]);
Walk through features one at a time. Load the reference, follow its steps, verify before moving on:
| Feature | Reference file | Load when... |
|---|---|---|
| Error Monitoring | ${SKILL_ROOT}/references/error-monitoring.md | Always (baseline) |
| Tracing | ${SKILL_ROOT}/references/tracing.md | HTTP handlers / distributed tracing |
| Profiling | ${SKILL_ROOT}/references/profiling.md | Performance-sensitive production |
| Logging | ${SKILL_ROOT}/references/logging.md | Always; Monolog for Laravel/Symfony |
| Metrics | ${SKILL_ROOT}/references/metrics.md |
For each feature: Read ${SKILL_ROOT}/references/<feature>.md, follow steps exactly, verify it works.
\Sentry\init() Options (Plain PHP)| Option | Type | Default | Purpose |
|---|---|---|---|
dsn | `string | bool | null` |
environment | `string | null` | $_SERVER['SENTRY_ENVIRONMENT'] |
release | `string | null` | $_SERVER['SENTRY_RELEASE'] |
send_default_pii |
| Variable | Maps to | Notes |
|---|---|---|
SENTRY_DSN | dsn | Also $_SERVER['SENTRY_DSN'] |
SENTRY_ENVIRONMENT | environment | |
SENTRY_RELEASE | release | Also reads |
Laravel note: Uses
SENTRY_LARAVEL_DSN(falls back toSENTRY_DSN). Other options followSENTRY_TRACES_SAMPLE_RATE,SENTRY_PROFILES_SAMPLE_RATE, etc.
Test that Sentry is receiving events:
// Trigger a real error event — check the Sentry dashboard within seconds
throw new \Exception('Sentry PHP SDK test');
Or for a non-crashing check:
\Sentry\captureMessage('Sentry PHP SDK test');
Laravel:
php artisan sentry:test
If nothing appears:
Enable debug output:
\Sentry\init([
'dsn' => '...',
'logger' => new \Sentry\Logger\DebugStdOutLogger(),
]);
Verify the DSN is correct (format: https://<key>@o<org>.ingest.sentry.io/<project>)
Check SENTRY_DSN (or SENTRY_LARAVEL_DSN) env var is set in the running process
For queue workers: ensure Sentry is initialized inside the worker process , not just the web process
After completing PHP setup, check for a companion frontend missing Sentry:
ls frontend/ resources/js/ assets/ public/ 2>/dev/null
cat package.json frontend/package.json 2>/dev/null \
| grep -E '"react"|"svelte"|"vue"|"next"|"nuxt"'
If a frontend exists without Sentry, suggest the matching skill:
| Frontend detected | Suggest skill |
|---|---|
| React / Next.js | sentry-react-sdk |
| Svelte / SvelteKit | sentry-svelte-sdk |
| Vue / Nuxt | Use @sentry/vue — see docs.sentry.io/platforms/javascript/guides/vue/ |
| Other JS/TS | sentry-react-sdk (covers generic browser JS patterns) |
| Issue | Solution |
|---|---|
| Events not appearing | Enable logger option (DebugStdOutLogger), verify DSN, check env vars in the running process |
| Malformed DSN error | Format: https://<key>@o<org>.ingest.sentry.io/<project> |
| Laravel exceptions not captured | Ensure Integration::handles($exceptions) is in bootstrap/app.php |
| Symfony exceptions not captured | Verify SentryBundle is registered in config/bundles.php |
Weekly Installs
149
Repository
GitHub Stars
82
First Seen
Mar 4, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
cursor146
gemini-cli145
codex145
kimi-cli144
github-copilot144
amp144
Convex性能审计指南 - 诊断修复Convex应用性能问题与优化方案
16,300 周安装
QR Coin 拍卖:在 Base 区块链上竞标二维码 URL 展示位 | 区块链拍卖工具
1 周安装
Hydrex 治理指南:锁定 HYDX 获取投票权,参与流动性池投票与单边挖矿
1 周安装
Base技能:Bankrbot/Clawdbot-Skill核心基础功能,GitHub星标984+的开发者工具
1 周安装
Bankr Signals - Base区块链交易信号验证与复制工具,提升交易绩效
1 周安装
Vue.js 官方文档与最佳实践指南 - 从入门到精通,涵盖响应式、TypeScript、组件等核心主题
1 周安装
SQLAlchemy 2.0 中文文档与参考指南 - Python ORM 数据库工具完整技能
1 周安装
| Metrics | Business events or SLO tracking needed (beta) | ${SKILL_ROOT}/references/metrics.md |
| Crons | Scheduler or cron patterns detected | ${SKILL_ROOT}/references/crons.md |
| Business KPIs / SLO tracking (beta) |
| Crons | ${SKILL_ROOT}/references/crons.md | Scheduler / cron patterns detected |
bool |
false |
| Include request headers, cookies, IP |
sample_rate | float | 1.0 | Error event sample rate (0.0–1.0) |
traces_sample_rate | `float | null` | null |
traces_sampler | `callable | null` | null |
profiles_sample_rate | `float | null` | null |
enable_logs | bool | false | Send structured logs to Sentry (>=4.12.0) |
max_breadcrumbs | int | 100 | Max breadcrumbs per event |
attach_stacktrace | bool | false | Stack traces on captureMessage() |
in_app_include | string[] | [] | Path prefixes belonging to your app |
in_app_exclude | string[] | [] | Path prefixes for third-party code (hidden in traces) |
ignore_exceptions | string[] | [] | Exception FQCNs to never report |
ignore_transactions | string[] | [] | Transaction names to never report |
error_types | `int | null` | error_reporting() |
capture_silenced_errors | bool | false | Capture errors suppressed by @ operator |
max_request_body_size | string | "medium" | "none" / "small" / "medium" / "always" |
before_send | callable | identity | fn(Event $event, ?EventHint $hint): ?Event — return null to drop |
before_breadcrumb | callable | identity | fn(Breadcrumb $b): ?Breadcrumb — return null to discard |
trace_propagation_targets | `string[] | null` | null |
debug | bool | false | Verbose SDK output (use a PSR-3 logger option instead for structured output) |
$_SERVER['AWS_LAMBDA_FUNCTION_VERSION']SENTRY_SPOTLIGHT | spotlight |
| No traces appearing | Set traces_sample_rate (not null); confirm auto-instrumentation is enabled |
| Profiling not working | excimer extension required (Linux/macOS only; not available on Windows); requires traces_sample_rate > 0 |
enable_logs not working | Requires sentry/sentry >= 4.12.0, sentry/sentry-laravel >= 4.15.0, or sentry/sentry-symfony >= 5.4.0 |
| Queue worker errors missing | Init Sentry in the worker process itself, not just the web process; for Laravel use SENTRY_LARAVEL_DSN in worker .env |
| Too many transactions | Lower traces_sample_rate or use traces_sampler to drop health check routes |
| PII not captured | Set send_default_pii: true; for Laravel set send_default_pii: true in config/sentry.php |
@-suppressed errors missing | Set capture_silenced_errors: true |
| Cross-service traces broken | Check trace_propagation_targets; ensure downstream services have Sentry installed |