構文
newrelic_add_custom_tracer(string $function_name)
エージェントがカスタムインストルメンテーションを行うための機能やメソッドを指定します。
要件
すべてのAgentバージョンに対応しています。
説明
カスタムインスツルメンテーションの対象となるエージェントの関数またはメソッドを指定します 。これは、 newrelic.transaction_tracer.custom
の設定に相当するAPIです。
カスタムトレースをPHPの内部関数に適用することはできません。
パラメータ
パラメーター | 説明 |
---|---|
文字列 | 必須です。この名前は、手続き型関数の場合は |
戻り値
トレーサーの追加に成功した場合は 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"); } }}