跳至内容

将事件发送至 Insights

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

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

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

事件 => [
已启用 => 真的 ,
自动的 => [
活动 数据库查询执行 :: 班级 ,
活动 数据库事务已开始 :: 班级 ,
活动 数据库事务已提交 :: 班级 ,
活动 数据库事务回滚 :: 班级 ,
活动 缓存命中 :: 班级 ,
活动 缓存未命中 :: 班级 ,
活动 作业队列 :: 班级 ,
活动 邮件发送 :: 班级 ,
活动 电子邮件已发送 :: 班级 ,
活动 消息已记录 :: 班级 ,
活动 通知发送 :: 班级 ,
活动 通知已发送 :: 班级 ,
活动 通知失败 :: 班级 ,
活动 Redis命令执行 :: 班级 ,
活动 匹配的路线 :: 班级 ,
活动 查看渲染 :: 班级 ,
],
],

events.automatic 键包含 Honeybadger 跟踪的事件列表 默认。您可以通过删除或注释掉 适当的线路。

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

蜜獾 = 蜜獾 蜜獾 :: 新的 ([
api_key => 我的 API 密钥 ,
事件 => [
已启用 => 真的
]
]);

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

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

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

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

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

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

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

字段 @ts、@preview
| 过滤器 event_type::str == “user_activity”
| 过滤器操作::str ==“注册”
| 排序 @ts

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

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

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

新的 蜜獾 日志事件处理程序 ($ 蜜獾 , 独白 \ 记录器 :: 调试 (英文):

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

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

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

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

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

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

配置/logging.php
频道 => [
=> [
司机 => ,
频道 => [ 单身的 , 蜜獾 ],
忽略异常 => 错误的 ,
],
// ...
],

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

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

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

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

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

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

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

事件 => [
已启用 => 真的 ,
采样率 => 10
]

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