構文
newrelic.agent.datastore_trace(product, target, operation)
データストアへの呼び出しを計測するために使用されます。
説明
datastore_trace
追加セグメントの形式でトランザクション追跡に詳細を追加するために使用されます。datastore_trace
で報告された呼び出しは、 APM データベース ページに表示されます。datastore_trace
はDatastoreTraceWrapper
の部分を返します。これは、データストアへの呼び出しのタイミングをとる関数のデコレーターとして使用できます。
datastore_trace
デコレーターは、エージェント バージョン 2.102.0.85 以降のジェネレーターとコルーチンで使用できます。これらのオブジェクトのタイミングは、消費が開始されたときに始まり、オブジェクトが使い果たされるか範囲外になると終了します。これは、メトリックがジェネレータまたはコルーチン オブジェクト自体の作成にかかった時間を表す以前のバージョンからの変更です。
アプリケーションでデコレーターを使用できない場合は、これらの他の呼び出しフォーマットのいずれかを使用することができます。
The context manager
: コンテキスト マネージャー フォームは
DatastoreTrace
です。The wrapper
: ラッパーフォームは
DatastoreTraceWrapper
です。 デコレータを使用せずにラップされた関数を返すために使用できます。The path-based wrapper
: パスベースのラッパー形式は
wrap_datastore_trace
です。 これは、モンキーパッチングを通じて、指定されたオブジェクトにDatastoreTraceWrapper
を適用します。 これは、デコレータと同じ引数に加えて、追加のmodule
とobject_path
引数を受け取ります。
これらの異なるコールフォーマットの用途についての説明は、 Different call formats を参照してください。通話例については、 例 をご覧ください。
パラメーター
デコレーターのパラメータ
newrelic.agent.datastore_trace(product, target, operation)
このコールには、以下のパラメータが含まれています。
パラメータ | 説明 |
---|---|
ストリング | 必須。ベンダーの名前。例: |
ストリング | 必須。コレクションまたはテーブルの名前。ターゲットがない場合は、 |
ストリング | 必須。データストア操作の名前。例: |
コンテキストマネージャのパラメータ
newrelic.agent.DatastoreTrace(product, target, operation, host=None, port_path_or_id=None, database_name=None)
コンテキスト マネージャーのパラメーターには、 datastore_trace
からのすべてのパラメーターに加えて、追加のhost
、 port_path_or_id
、およびdatabase_name
パラメーターが含まれます。
パラメータ | 説明 |
---|---|
ストリング | オプションです。データストア・サーバーのホスト名またはIP。 |
ストリング | オプションです。データストア・サーバーへの接続に使用するポートです。unix ソケットで接続する場合は、ソケットへのパスを指定します。 |
ストリング | オプションです。データベースの名前です。 |
ラッパーのパラメーター
newrelic.agent.DatastoreTraceWrapper(wrapped, product, target, operation)
ラッパーのパラメーターには、 datastore_trace
のすべてのパラメーターとwrapped
パラメーターが含まれます。
パラメータ | 説明 |
---|---|
機能 | 必要です。ラッピングされる機能 |
パスベースのラッピングパラメータ
newrelic.agent.wrap_datastore_trace(module, object_path, product, target, operation)
パラメータには、 datastore_trace
のすべてのパラメータと次のパラメータが含まれます:
パラメータ | 説明 |
---|---|
物体 | 必要です。インストルメント化する機能を含むモジュール。 |
ストリング | 必要です。関数の場所へのパスです。 |
戻り値
datastore_trace
DatastoreTraceWrapper()
パーシャルを返します。
例
datastore_trace
例
datastore_trace
デコレーターの使用例:
import newrelic.agent
class _Database(UserDict.DictMixin):
...
@newrelic.agent.datastore_trace('Redis', None, 'get') def _get(self, key): ...
ネイティブ コルーチンでdatastore_trace
デコレータを使用する例:
import newrelic.agent
class _Database(UserDict.DictMixin):
...
@newrelic.agent.datastore_trace('Redis', None, 'get') async def _get(self, key): ...
コンテクストマネージャーの例
DatastoreTrace
コンテキスト マネージャーの使用例: これにより、`custom_action` の実行にかかる時間のタイミングが得られます。
import newrelic.agent
def complex_query(a, b, c): with Connection(host, port, db) as conn: with newrelic.agent.DatastoreTrace( product="Custom Product", target=None, operation="custom", host=host, port_path_or_id=port, database_name=db, ):
conn.custom_action()
ラッパーの例
DatastoreTraceWrapper
の使用例:
import newrelic.agent
class _Database(UserDict.DictMixin):
...
def _get(self, key): ...
_Database._get = newrelic.agent.DatastoreTraceWrapper( _Database._get, "Redis", None, "get")