试图找到一个非常特殊问题的答案,空虚,我自己解决并在后代发布它的另一个案例。
问题
我有几个经常触发的Laravel PHP路线,两者都非常特定于其他站点监视(网站下降?)和会话管理(我仍然登录吗?)。这些是无法实现面向用户目的的实用路线,我不需要从哨兵那里进行任何有关它们的其他记录详细信息。
我可以防止交易在哨兵离开服务器之前发送到哨兵吗?我尝试搜索诸如sentry laravel忽略路线和哨兵控制交易之类的术语,因此我必须上班。
解决方案
在我的搜索中,我确实找到了专门用于Laravel的this helpful documentation for before_send_transaction。这是/config/sentry.php
配置的可选添加。在其中,您可以定义要在首选情况下返回null
的任何逻辑。无效的回报将导致活动被丢弃。宾果游戏!
这是我制作的代码。
'before_send_transaction' => function (
\Sentry\Event $transaction
): ?\Sentry\Event {
$ignore = ['_debugbar', 'monitoring', 'pleaseignoreme'];
$request = $transaction->getRequest();
$check = array_filter($ignore, function ($url) use ($request) {
if (stripos($request['url'], $url) !== false) {
return true;
}
});
if (count($check) > 0) {
return null;
}
return $transaction;
},
这是在做什么:
-
$ignore
是我要忽略的URL关键术语的数组,这是您需要编辑的所有内容。添加您不希望被Sentry记录的所有URL段,您可以 -
$request
是来自Sentry生成的包装$transaction
的请求详细信息。在其中是我们用来测试 的完整URL
-
$check
是我通过忽略列表迭代并检查匹配的方法。这将$ignore
阵列向下过滤至匹配。 - 然后,我们查看
$check
的计数是否大于零,如果是的话,那么其中一条路线匹配,我们希望返回null
以忽略此事务。否则,按正常返回。
就是这样!
非常简单,但是花了一些时间来挖掘文档才能找到before_send_transaction
并通过哨兵包来查看$transaction
所包含的内容,所以我希望能够摆脱下一个dev的麻烦。
向上和向上! ð