anjalirana / newrelic-bundle
使用忽略事务更新集成 New Relic 到 Symfony2
Requires (Dev)
- silex/silex: ~1.0
- symfony/console: ~2.2
- symfony/framework-bundle: ~2.2
- twig/twig: 1.*
Suggests
- sonata-project/block-bundle: 2.2.*@dev
This package is not auto-updated.
Last update: 2024-09-24 14:59:07 UTC
README
此包将 NewRelic PHP API 集成到 Symfony2 中。有关 NewRelic 的更多信息,请访问 http://newrelic.com。
该包可以使用路由名称或控制器名称作为事务名称。对于 CLI 命令,事务名称是命令名称。
结果
安装
步骤 0 : 安装 NewRelic
查看 http://newrelic.com ...
步骤 1: 使用 Composer(推荐)
使用 composer.phar
$ php composer.phar require ekino/newrelic-bundle
只需指定您想要的版本:master-dev
。它将添加包到您的 composer.json
文件并安装它。
或者您可以直接在 composer.json
文件中添加以下内容
// composer.json { // ... require: { // ... "ekino/newrelic-bundle": "master-dev" } }
然后,您可以通过在 composer.json
文件所在目录中运行 Composer 的 update
命令来安装新的依赖项
$ php composer.phar update ekino/newrelic-bundle
步骤 1(替代): 使用 deps
文件(Symfony 2.0.x)
首先,从代码中检出一份副本。只需将以下内容添加到 Symfony 标准分布的 deps
文件中
[EkinoNewRelicBundle] git=http://github.com/ekino/EkinoNewRelicBundle.git target=/bundles/Ekino/Bundle/NewRelicBundle
然后,运行
$ bin/vendors install
确保您还使用自动加载器注册了命名空间
<?php // app/autoload.php $loader->registerNamespaces(array( // ... 'Ekino' => __DIR__.'/../vendor/bundles', // ... ));
步骤 2 : 注册包
然后使用您的内核注册该包
<?php // in AppKernel::registerBundles() $bundles = array( // ... new Ekino\Bundle\NewRelicBundle\EkinoNewRelicBundle(), // ... );
步骤 3 : 配置包
# app/config/config.yml ekino_new_relic: enabled: true # Defaults to true application_name: Awesome Application # default value in newrelic is "PHP Application", or whatever is set # as php ini-value api_key: # New Relic API license_key: # New Relic license key xmit: false # if you want to record the metric data up to the point newrelic_set_appname is called, set this to true logging: false # If true, logs all New Relic interactions to the Symfony log instrument: false # If true, uses enhanced New Relic RUM instrumentation (see below) log_exceptions: false # If true, sends exceptions to New Relic log_commands: true # If true, logs CLI commands to New Relic as Background jobs (>2.3 only) using_symfony_cache: false # Symfony HTTP cache (see below) transaction_naming: route # route, controller or service (see below) transaction_naming_service: ~ # Transaction naming service (see below) ignored_routes: [] # No transaction recorded for this routes ignored_paths: [] # No transaction recorded for this paths ignored_commands: [] # No transaction recorded for this commands (background tasks)
增强型 RUM 仪器
该包提供增强型实时用户监控选项。通常情况下,New Relic 扩展(除非由配置禁用)会自动向所有 HTML 响应添加 RUM 仪器跟踪代码。使用增强型 RUM 仪器,该包允许您选择性地禁用某些请求的仪器。
如果,例如,您正在返回用于 HTML 编辑器的纯 HTML,这可能会很有用。
如果启用增强型 RUM 仪器,您可以通过传递请求参数 _instrument
并将其设置为 false
来为特定请求 禁用 仪器。例如,这可以通过路由配置来实现。
事务命名策略
该包提供了两种内置的事务命名策略:route
和 controller
,分别将 New Relic 事务命名为路由或控制器。然而,该包通过 service
配置选项支持自定义事务命名策略。如果您已选择 service
配置选项,则必须将您的自定义事务命名服务名称作为 transaction_naming_service
配置选项传递。
事务命名服务类必须实现 Ekino\Bundle\NewRelicBundle\TransactionNamingStrategy\TransactionNamingStrategyInterface
接口。有关创建自己的服务的更多信息,请参阅 Symfony 关于 Creating/Configuring Services in the Container 的文档。
Symfony HTTP 缓存
当您使用 Symfony 的 HTTP 缓存时,您的 app/AppCache.php
将构建包含您的 Edge Side Includes(ESI)的响应。这看起来像 New Relic 中的一个事务。当您设置 using_symfony_cache: true
时,这些 ESI 请求将是单独的事务,这可以提高统计数据的准确性。如果您使用其他反向代理缓存或根本不使用缓存,请将其保留为 false。
如果需要设置 application_name
。
部署通知
您可以使用 newrelic:notify-deployment
命令向 New Relic 发送部署通知。这需要设置 api_key
配置。
该命令具有许多选项,如帮助数据中所示。
$ app/console newrelic:notify-deployment --help
Usage:
newrelic:notify-deployment [--user[="..."]] [--revision[="..."]] [--changelog[="..."]] [--description[="..."]]
Options:
--user The name of the user/process that triggered this deployment
--revision A revision number (e.g., git commit SHA)
--changelog A list of changes for this deployment
--description Text annotation for the deployment — notes for you
此包提供了一个 Capifony 配方来自动化部署通知(请参阅 Resources/recipes/newrelic.rb
)。
与 SonataBlockBundle 集成
第 0 步:安装 SonataBlockBundle
请查看 SonataBlockBundle 安装说明
第 1 步:启用您的区块
# app/config/config.yml sonata_block: blocks: ekino.newrelic.block.simple: ekino.newrelic.block.tabs:
与 SonataAdminBundle 集成
第 0 步:安装 SonataBlockBundle
请查看预览部分
第 1 步:安装 SonataAdminBundle
请查看 SonataAdminBundle 安装说明
第 1 步:启用您的区块
# app/config/config.yml sonata_block: blocks: ekino.newrelic.block: ... sonata_admin: ... dashboard: blocks: - { position: left, type: ekino.newrelic.block.simple, settings: { reference: 3Y5rCib3JmH # Url charts (https://... or 3Y5rCib3JmH) } }
有关配置 SonataAdminBundle 的更多详细信息,请参阅 配置
与 Twig 的集成
{{ sonata_block_render({ 'type': 'ekino.newrelic.block.simple' }, { 'reference': '3Y5rCib3JmH' }) }}
有关 Twig 扩展 的更多详细信息