2016-05-27 22 views
1

一部のサービスでは、外部のWebサービスを除くすべてのトランザクションのほんの一部しか表示しません。Newrelic:トランザクションの特定の部分を無視する

newrelic_ignore_apdexnewrelic_ignore_transactionの方法hereが見つかりました。 しかし、このメソッドを呼び出すと、特定の部分だけでなく、トランザクション全体が無視されます。

トランザクションの一部を完全に無視する方法はありますか?私はあなたのニーズを理解している場合

newrelic example

答えて

2

、使用する方が適切かもしれない

newrelic_end_of_transaction()またはnewrelic_end_transaction([無視]) ある時点で記録されてから目の取引を停止する

後でトランザクションを再度開く必要がある場合は、

とnewrelic_start_transaction(appname [、license]) が必要です。

あなたはNewRelicドキュメントからすぐにWebトランザクションを記録

newrelic_end_of_transaction()

function newrelic_end_of_transaction(): null 

停止を引用ここhttps://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-api

をそれらの両方を見つけます。通常、 ページがすべての計算で完了し、データをストリームしようとしているとき(ファイル ダウンロード、オーディオまたはビデオストリーミングなど)、トランザクションの一部として数えられるようにストリームに取られた時間を望まない場合。 操作を完了するのにかかる時間が で、アプリケーションの境界外にある場合に特に役に立ちます。たとえば、非常に遅い接続のユーザ は、小さなファイル をダウンロードするのに非常に時間がかかることがあります。そのダウンロード時間で実際の のトランザクション時間をスキューしたくない場合があります。スクリプトが終了する前に、あなたが取引を終了している場合は、ここで一方

はスタート機能の説明は(

newrelic_start_transaction(appnameの[ライセンス])

function newrelic_start_transaction (string $appname, string $license = ini_get('newrelic.license')): bool 

ですおそらく がジョブキューマネージャでタスクを終了したため) 新しいトランザクションを開始したい場合は、この呼び出しを使用します。これにより、スクリプトが最初に起動されたときに発生する操作と同じ操作が実行されます( )。 の2つの引数のうち、アプリケーション名のみが必須です。ただし、 が複数のアカウントのタスクを処理している場合は、関連付けられたアカウントに対して ライセンスを提供することもできます。このAPIコール のライセンスセットは、INIファイルで設定されたすべてのディレクトリ単位およびグローバルデフォルトライセンス よりも優先されます。 トランザクションが正常に開始された場合、この関数はtrueを返します。

)(newrelic_end_transaction([無視])とnewrelic_end_of_transactionの間にいくつかの違いに注意してください

上記newrelic_end_of_transactionする名前に類似しているにもかかわらず、 この呼び出しは非常に異なる目的を果たします。 newrelic_end_of_transaction はトランザクションの終了時刻を単にマークしますが、他のアクションは一切受け取りません。 PHP エンジンが、スクリプトの実行が完了し、 がシャットダウンしていると判断した場合にのみ、トランザクションはデーモンに送信されます。一方、この関数は現在のトランザクション を直ちに終了させ、ignoreパラメータがtrueに設定されていない限り、これまで収集されたすべてのメトリックを にデーモンに送ります。実際には でこの呼び出しは、PHPが現在のトランザクション トランザクションを終了したときの動作をシミュレートします。

私は多くの引用をしたことを知っていますが、ドキュメントは非常に明示的であり、私は同じことを別の方法で言うことは役に立たないと分かりました。 これが役に立ちますようお願いいたします。

関連する問題