anjalirana/newrelic-bundle

使用忽略事务更新集成 New Relic 到 Symfony2

安装: 15

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 6

分支: 104

类型:symfony-bundle

1.2.3 2015-03-10 03:54 UTC

This package is not auto-updated.

Last update: 2024-09-24 14:59:07 UTC


README

Build Status

此包将 NewRelic PHP API 集成到 Symfony2 中。有关 NewRelic 的更多信息,请访问 http://newrelic.com

该包可以使用路由名称或控制器名称作为事务名称。对于 CLI 命令,事务名称是命令名称。

结果

Ekino NewRelicBundle

安装

步骤 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 来为特定请求 禁用 仪器。例如,这可以通过路由配置来实现。

事务命名策略

该包提供了两种内置的事务命名策略:routecontroller,分别将 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 扩展 的更多详细信息