• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

newrelic_add_custom_tracer (PHPエージェントAPI)

構文

newrelic_add_custom_tracer(string $function_name)

エージェントがカスタムインストルメンテーションを行うための機能やメソッドを指定します。

要件

すべてのAgentバージョンに対応しています。

説明

カスタムインスツルメンテーションの対象となるエージェントの関数またはメソッドを指定します 。これは、 newrelic.transaction_tracer.custom の設定に相当するAPIです。

カスタムトレースをPHPの内部関数に適用することはできません。

パラメータ

パラメーター

説明

関数名

文字列

必須です。この名前は、手続き型関数の場合は function_name 、メソッドの場合は " ClassName::method" という形式で指定します。クラス名は完全に修飾されている必要があります。クラスが名前空間内で定義されている場合は、完全な名前空間を含める必要があります。

戻り値

トレーサーの追加に成功した場合は true を返します。

機能を計測する

function example_function() {
if (extension_loaded('newrelic')) { // Ensure PHP agent is available
newrelic_add_custom_tracer("example_function");
}
}

クラス内のメソッドを計測する

class ExampleClass {
function example_method() {
if (extension_loaded('newrelic')) { // Ensure PHP agent is available
newrelic_add_custom_tracer("ExampleClass::example_method");
}
}
}

名前付きクラス内のメソッドをインストゥルメントする

namespace Foo\Bar;
class ExampleClass {
function example_method() {
if (extension_loaded('newrelic')) { // Ensure PHP agent is available
newrelic_add_custom_tracer("Foo\\Bar\\ExampleClass::example_method");
}
}
}

また、PHP 5.5以降では、 ::class の構文を代わりに使用することもできます。

namespace Foo\Bar {
class ExampleClass {
function example_method() {
// ...
}
}
}
namespace {
use Foo\Bar;
if (extension_loaded('newrelic')) { // Ensure PHP agent is available
newrelic_add_custom_tracer(Bar::class . "::example_method");
}
}
}
Copyright © 2022 New Relic Inc.