zfuming / laravel-newrelic
Laravel 5 NewRelic 集成
Requires
- php: >=5.5.0
- illuminate/support: 5.*
- intouch/newrelic: >=1.0.2
This package is not auto-updated.
Last update: 2024-09-20 06:26:55 UTC
README
安装
请参考上表中的包版本信息,并相应地更改下面的版本。
使用 composer
,运行
composer require intouch/laravel-newrelic:"~2.0"
或将 intouch/laravel-newrelic
添加到你的 composer 需求
"require": {
"intouch/laravel-newrelic": "~2.0"
}
... 然后运行 composer install
安装包完成后,打开你的 config/app.php
配置文件,找到 providers
键。在末尾添加以下行
Intouch\LaravelNewrelic\NewrelicServiceProvider::class,
可选,找到 aliases
键并添加以下行
'Newrelic' => Intouch\LaravelNewrelic\Facades\Newrelic::class,
最后,发布默认配置(它将出现在 config/newrelic.php
中)
php artisan vendor:publish --provider="Intouch\LaravelNewrelic\NewrelicServiceProvider"
配置
配置发布后,请查看 config/newrelic.php
以获取配置选项和描述。
事务名称
命名是通过在 name_provider
字符串中替换标记,以从应用程序收集的格式化输出完成的。该 newrelic.name_provider
配置参数包含此字符串 - 注意,非标记字符串部分保持不变。
默认的 newrelic.name_provider
字符串是 '{uri} {route}'
。
Eloquent 模型观察者
有两个观察者类用于监控你的 Eloquent 模型,分别是 NewrelicCountingObserver
和 NewrelicTimingObserver
。正如其名称所示,一个用于统计可观察模型事件发生的次数,另一个用于收集它们的持续时间(以毫秒为单位)。这些记录的指标将显示在 NewRelic 自定义指标中。
NewrelicCountingObserver
可用于任何可观察的模型事件,包括你的自定义事件。目前,NewrelicTimingObserver
只支持内置的 Eloquent 可观察事件(请参阅 Laravel 文档中的 模型事件)。
使用观察者很简单 - 无论你在哪里注册模型观察者,只需添加
User::observe(new \Intouch\LaravelNewrelic\Observers\NewrelicTimingObserver() ); User::observe(new \Intouch\LaravelNewrelic\Observers\NewrelicCountingObserver() );
... 假设你想观察 User
模型。
两个观察者都接受两个可选参数给它们的构造函数: $name
和 $care
。 $name
是你想要给你的自定义指标的名字,如果没有设置,将默认为观察的模型对象的类名。如果你想要更改 $care
数组而不更改命名,只需将 null
作为第一个构造函数参数传递。
$care
是你想要关注的事件名称数组。这之间有细微差别 Counting 和 Timing 观察者。对于 Counting 观察者,任何事件都可以独立计数。对于 Timing 观察者,它使用 saving
和 saved
之间的时间差来提交指标,因此只能观察操作后的事件: created
、saved
、updated
、deleted
、restored
。这也是为什么自定义可观察事件目前不支持 Timing 观察者的原因(我们正在努力,我们很高兴接受 PR)。
根据 NewRelic 的“最佳实践”建议,所有指标名称都以前缀 'Custom/' 开头。《Counting》观察者还在名称中添加 'Counts/',而《Timing》观察者添加 'Timing/'。两个观察者都将事件名称追加到指标名称的末尾。例如,使用《Counting》观察者监控 User
模型的 created
事件 - 名称将是: Custom/Counts/App/User/created
(其中 App/User
是观察的模型的全名,反斜杠用于 NewRelic 指标路径,或者将根据你在 $name
中设置的值,如果提供了的话)。
只要将newrelic.throw_if_not_installed
设置为false
,就可以在集成测试或交互式测试环境中安全地运行这些观察者。如果在该环境中未安装 NewRelic PHP Agent,则自定义指标将不会被记录。如果在该环境中安装了 NewRelic PHP Agent,则指标将被记录。
这两个观察者都关注默认事件:created
、saved
、updated
、deleted
、restored
。
注意:要使用观察者,必须在您的应用程序配置中加载Newrelic
外观,而不仅仅是服务提供者。
注意:NewRelic 限制了您可拥有的自定义指标总数为 2000,并建议少于 1000 个。
自定义指标仪表板示例
基本使用
此软件包包括对Intouch/Newrelic类的外观。
可以像访问任何其他外观一样访问其任何方法,例如
App::after( function() {
Newrelic::setAppName( 'MyApp' );
} );
... 将将 NewRelic 应用程序名称设置为 'MyApp'
Laravel 4.x 支持
问题
在为配置的数据格式打开问题之前,请检查您的 NewRelic PHP Agent 日志,并请参阅:https://discuss.newrelic.com/t/php-agent-4-19-0-disabled-3rd-party-service-provider-incorrectly/1666
如果这还没有解决问题,请在这里打开问题或发送我们 PR。