发送事件至 Insights

Honeybadger 的 PHP(v2.19+)和 Laravel(v4.1+)包可用于将事件发送到 见解

自动仪表

如果您使用 Laravel 或 Lumen,Honeybadger 提供自动检测功能来捕获您应用中的事件。默认情况下,我们会记录:

您可以使用 events 选项 config/honeybadger.php :

php
“事件” => [ ‘已启用’ => 真的, '自动的' => [ 事件\数据库查询执行::班级, 事件\数据库事务开始::班级, 事件\DatabaseTransactionCommitted::班级, 事件\DatabaseTransactionRolledBack::班级, 事件\CacheHit::班级, 事件\CacheMiss::班级, 事件\JobQueued::班级, 事件\邮件发送::班级, 事件\邮件已发送::班级, 事件\消息记录::班级, 事件\通知发送::班级, 事件\通知已发送::班级, 事件\通知失败::班级, 事件\RedisCommandExecuted::班级, 事件\RouteMatched::班级, 事件\ViewRendered::班级, ], ],

events.automatic 键包含 Honeybadger 默认跟踪的事件列表。您可以通过删除或注释掉相应的行来禁用特定事件。

手动发送事件

您也可以手动发送事件。首先配置 Honeybadger 并启用事件:

php
蜜獾 = 蜜獾\蜜獾::新的([ 'api_key' => ‘我的 API 密钥’, “事件” => [ ‘已启用’ => 真的 ] ]);

然后您可以使用 $honeybadger->event 方法:

php
蜜獾->事件'用户活动', [ '行动' => '登记', '用户身份' => 123 ])

第一个参数是事件的类型( event_type ),第二个参数是包含您想要包含的任何其他数据的对象。

$honeybadger->event 也可以使用单个参数作为包含事件数据的对象来调用:

php
蜜獾->事件([ ‘事件类型’ => '用户活动', '行动' => '登记', '用户身份' => 123 ])

时间戳字段( ts ) 如果未提供,则会自动添加到事件数据中,无论使用何种方法发送事件。

可以使用以下 BadgerQL 查询找到这些事件:

fields @ts, @preview | filter event_type::str == "user_activity" | filter action::str == "registration" | sort @ts

自动日志检测

您可以将应用程序日志发送到 Insights,也可以通过从您的 基础设施 或者 如果你正在使用 Monolog,你可以注册 Honeybadger 的 LogEventHandler 类作为处理程序:

php
$记录器 = 新的 独白\日志“我的记录器”(英文): 蜜獾 = 蜜獾\蜜獾::新的([ 'api_key' => ‘我的 API 密钥’ ]); $记录器->push处理程序新的 Honeybadger\LogEventHandler蜜獾)); $记录器->信息“一条信息消息”(英文): $记录器->信息“带有上下文数据的信息消息”, [“某些键” => “某个值”]); $记录器->错误“错误消息”(英文):

您可以向 LogEventHandler 构造函数指定要发送到 Honeybadger 的最低日志级别。默认值为 Monolog\Logger::INFO

php
新的 Honeybadger\LogEventHandler蜜獾, 独白\日志::调试(英文):

这会将所有日志消息发送到 Insights,它们将显示在 见解 仪表板部分。

使用 Laravel 或 Lumen

如果您使用 Laravel 或 Lumen, 注册自定义频道 在你的 config/logging.php ,利用 HoneybadgerLogEventDriver :

php
配置/logging.php
“渠道” => [ // ... 蜜獾 => [ '司机' => '风俗', '通过' => Honeybadger\HoneybadgerLaravel\HoneybadgerLogEventDriver::班级, '姓名' => 蜜獾, '等级' => '信息', ], ],

现在,您可以使用 Laravel 的日志外观正常编写日志消息,它们将显示在 Honeybadger Insights 中:

php
日志::渠道蜜獾->信息“一条信息消息”(英文): 日志::渠道蜜獾->错误“带有上下文的错误消息”, [“某些键” => “某个值”]);

将此自定义频道添加到您的默认堆栈,然后所有日志消息都将出现在 Honeybadger Insights 中:

php
配置/logging.php
“渠道” => [ '堆' => [ '司机' => '堆', “渠道” => ['单身的', 蜜獾], ‘忽略异常’ => 错误的, ], // ... ],

忽略事件

您可以使用以下方式以编程方式忽略事件 beforeEvent 打回来。 在事件发送到 Honeybadger 之前调用此回调。 如果回调返回 false ,则不会发送该事件。

例如,您可以根据事件类型忽略事件:

php
蜜獾->事件之前功能 &$事件 { 如果 $事件[‘事件类型’] === '用户活动' && $事件['行动'] === '登记' { 返回 错误的; } });

或者,您可以在发送事件数据之前修改它:

php
蜜獾->事件之前功能 &$事件 { $事件['用户身份'] = 456; });

笔记 :您可以注册多个 beforeEvent 回调。如果其中任何一个返回 false ,则不会发送该事件。

采样事件

如果您发现您想报告较少的事件以最大限度地减少配额消耗,您可以在 config/honeybadger.php 有条件地发送一定比例的事件:

php
“事件” => [ ‘已启用’ => 真的, ‘采样率’ => 10 ]

这将发送与请求无关的 10% 事件,以及 10% 请求的所有事件。