发送事件至 Insights
Honeybadger 的 PHP(v2.19+)和 Laravel(v4.1+)包可用于将事件发送到 见解 。
自动仪表
如果您使用 Laravel 或 Lumen,Honeybadger 提供自动检测功能来捕获您应用中的事件。默认情况下,我们会记录:
您可以使用
events
选项
config/honeybadger.php
:
“事件” => [
‘已启用’ => 真的,
'自动的' => [
事件\数据库查询执行::班级,
事件\数据库事务开始::班级,
事件\DatabaseTransactionCommitted::班级,
事件\DatabaseTransactionRolledBack::班级,
事件\CacheHit::班级,
事件\CacheMiss::班级,
事件\JobQueued::班级,
事件\邮件发送::班级,
事件\邮件已发送::班级,
事件\消息记录::班级,
事件\通知发送::班级,
事件\通知已发送::班级,
事件\通知失败::班级,
事件\RedisCommandExecuted::班级,
事件\RouteMatched::班级,
事件\ViewRendered::班级,
],
],
这
events.automatic
键包含 Honeybadger 默认跟踪的事件列表。您可以通过删除或注释掉相应的行来禁用特定事件。
手动发送事件
您也可以手动发送事件。首先配置 Honeybadger 并启用事件:
蜜獾 = 蜜獾\蜜獾::新的([
'api_key' => ‘我的 API 密钥’,
“事件” => [
‘已启用’ => 真的
]
]);
然后您可以使用
$honeybadger->event
方法:
蜜獾->事件('用户活动', [
'行动' => '登记',
'用户身份' => 123
])
第一个参数是事件的类型(
event_type
),第二个参数是包含您想要包含的任何其他数据的对象。
$honeybadger->event
也可以使用单个参数作为包含事件数据的对象来调用:
蜜獾->事件([
‘事件类型’ => '用户活动',
'行动' => '登记',
'用户身份' => 123
])
时间戳字段(
ts
) 如果未提供,则会自动添加到事件数据中,无论使用何种方法发送事件。
可以使用以下 BadgerQL 查询找到这些事件:
fields @ts, @preview
| filter event_type::str == "user_activity"
| filter action::str == "registration"
| sort @ts
自动日志检测
您可以将应用程序日志发送到 Insights,也可以通过从您的
基础设施
或者
如果你正在使用 Monolog,你可以注册 Honeybadger 的
LogEventHandler
类作为处理程序:
$记录器 = 新的 独白\日志(“我的记录器”(英文):
蜜獾 = 蜜獾\蜜獾::新的([
'api_key' => ‘我的 API 密钥’
]);
$记录器->push处理程序(新的 Honeybadger\LogEventHandler(蜜獾));
$记录器->信息(“一条信息消息”(英文):
$记录器->信息(“带有上下文数据的信息消息”, [“某些键” => “某个值”]);
$记录器->错误(“错误消息”(英文):
您可以向
LogEventHandler
构造函数指定要发送到 Honeybadger 的最低日志级别。默认值为
Monolog\Logger::INFO
。
新的 Honeybadger\LogEventHandler(蜜獾, 独白\日志::调试(英文):
这会将所有日志消息发送到 Insights,它们将显示在 见解 仪表板部分。
使用 Laravel 或 Lumen
如果您使用 Laravel 或 Lumen,
注册自定义频道
在你的
config/logging.php
,利用
HoneybadgerLogEventDriver
:
“渠道” => [
// ...
蜜獾 => [
'司机' => '风俗',
'通过' => Honeybadger\HoneybadgerLaravel\HoneybadgerLogEventDriver::班级,
'姓名' => 蜜獾,
'等级' => '信息',
],
],
现在,您可以使用 Laravel 的日志外观正常编写日志消息,它们将显示在 Honeybadger Insights 中:
日志::渠道(蜜獾)->信息(“一条信息消息”(英文):
日志::渠道(蜜獾)->错误(“带有上下文的错误消息”, [“某些键” => “某个值”]);
将此自定义频道添加到您的默认堆栈,然后所有日志消息都将出现在 Honeybadger Insights 中:
“渠道” => [
'堆' => [
'司机' => '堆',
“渠道” => ['单身的', 蜜獾],
‘忽略异常’ => 错误的,
],
// ...
],
忽略事件
您可以使用以下方式以编程方式忽略事件
beforeEvent
打回来。
在事件发送到 Honeybadger 之前调用此回调。
如果回调返回
false
,则不会发送该事件。
例如,您可以根据事件类型忽略事件:
蜜獾->事件之前(功能 (&$事件) {
如果 ($事件[‘事件类型’] === '用户活动' && $事件['行动'] === '登记') {
返回 错误的;
}
});
或者,您可以在发送事件数据之前修改它:
蜜獾->事件之前(功能 (&$事件) {
$事件['用户身份'] = 456;
});
笔记
:您可以注册多个
beforeEvent
回调。如果其中任何一个返回
false
,则不会发送该事件。
采样事件
如果您发现您想报告较少的事件以最大限度地减少配额消耗,您可以在
config/honeybadger.php
有条件地发送一定比例的事件:
“事件” => [
‘已启用’ => 真的,
‘采样率’ => 10
]
这将发送与请求无关的 10% 事件,以及 10% 请求的所有事件。