• ログイン今すぐ開始

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

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

問題を作成する

datastore_trace (PythonエージェントAPI)

構文

newrelic.agent.datastore_trace(product, target, operation)

データストアへの呼び出しを計測するために使用されます。

説明

datastore_trace 追加セグメントの形式でトランザクション追跡に詳細を追加するために使用されます。datastore_traceで報告された呼び出しは、 APM データベース ページに表示されます。datastore_traceDatastoreTraceWrapper部分を返します。これは、データストアへの呼び出しのタイミングをとる関数のデコレーターとして使用できます。

datastore_traceデコレーターは、エージェント バージョン 2.102.0.85 以降のジェネレーターとコルーチンで使用できます。これらのオブジェクトのタイミングは、消費が開始されたときに始まり、オブジェクトが使い果たされるか範囲外になると終了します。これは、メトリックがジェネレータまたはコルーチン オブジェクト自体の作成にかかった時間を表す以前のバージョンからの変更です。

アプリケーションでデコレーターを使用できない場合は、これらの他の呼び出しフォーマットのいずれかを使用することができます。

  • コンテキスト マネージャー: コンテキスト マネージャーの形式はDatastoreTraceです。
  • ラッパー: ラッパー形式はDatastoreTraceWrapperです。デコレータを使用せずにラップされた関数を返すために使用できます。
  • パスベースのラッパー: パスベースのラッパー形式はwrap_datastore_traceです。これにより、モンキー パッチによってDatastoreTraceWrapperが特定のオブジェクトに適用されます。これは、デコレーターと同じパラメーターに加えて、追加のmoduleおよびobject_pathパラメーターを取ります。

これらの異なるコールフォーマットの用途についての説明は、 Different call formats を参照してください。通話例については、 をご覧ください。

パラメーター

デコレーターのパラメータ

newrelic.agent.datastore_trace(product, target, operation)

このコールには、以下のパラメータが含まれています。

パラメータ

説明

product

ストリング

必須。ベンダーの名前。例: PostgresRedis

target

ストリング

必須。コレクションまたはテーブルの名前。ターゲットがない場合は、 Noneを使用する必要があります。

operation

ストリング

必須。データストア操作の名前。例: selectgetinsertrollback 。指定しない場合、デフォルトはotherです。

コンテキストマネージャのパラメータ

newrelic.agent.DatastoreTrace(product, target, operation, host=None, port_path_or_id=None, database_name=None)

コンテキスト マネージャーのパラメーターには、 datastore_traceからのすべてのパラメーターに加えて、追加のhostport_path_or_id 、およびdatabase_nameパラメーターが含まれます。

パラメータ

説明

host

ストリング

オプションです。データストア・サーバーのホスト名またはIP。

port_path_or_id

ストリング

オプションです。データストア・サーバーへの接続に使用するポートです。unix ソケットで接続する場合は、ソケットへのパスを指定します。

database_name

ストリング

オプションです。データベースの名前です。

ラッパーのパラメーター

newrelic.agent.DatastoreTraceWrapper(wrapped, product, target, operation)

ラッパーのパラメーターには、 datastore_traceのすべてのパラメーターwrappedパラメーターが含まれます。

パラメータ

説明

wrapped

機能

必要です。ラッピングされる機能

パスベースのラッピングパラメータ

newrelic.agent.wrap_datastore_trace(module, object_path, product, target, operation)

パラメータには、 datastore_traceのすべてのパラメータと次のパラメータが含まれます:

パラメータ

説明

module

物体

必要です。インストルメント化する機能を含むモジュール。

object_path

ストリング

必要です。関数の場所へのパスです。

戻り値

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')
Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.