いくつかの機能については、New Relic Python エージェント API には同じことを達成するための複数のオプションがあります。例えば、New Relic が監視しているトランザクションの詳細を提供するために関数をトレースすることは、セットアップにもよりますが、理論的には以下の API のいずれかで実現できます。
- デコレーター 。これは import-time API です。ほとんどのPythonアプリケーションのセットアップでは、これが最も簡単なオプションになります。
- コンテキストマネージャー 。これは、ランタイムレベルのAPIです。これらのAPIは、関数にカプセル化されていないコードをトレースしたい場合に使用されることがあります。
- ラッパー ****を使用しています。ラッパーは、デコレーターを使用せずに、ラップされた関数を作成するために使用されます。
- パスベースのラッパー 。これは、宣言されているコードの外側で関数をラップするために使用されます。例えば、変更したくないライブラリコードをインストルメントするのに使用できます。
これらの4つすべてが可能なPythonエージェントAPIの例については、 function_trace
コールエントリを参照してください。