发送事件至 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
,则不会发送该事件。
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:
“事件” => [
‘已启用’ => 真的,
'sample_rate' => 10
]
This will send 10% of events not associated with a request, and all events for 10% of requests.