发送事件至 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 ,则不会发送该事件。

Sampling events

If you find that you'd like to report fewer events in order to minimize your quota consumption, you can update your configuration in config/honeybadger.php to conditionally send a certain percentage of events:

php
“事件” => [ ‘已启用’ => 真的, 'sample_rate' => 10 ]

This will send 10% of events not associated with a request, and all events for 10% of requests.