• ログイン無料アカウント

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

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

問題を作成する

datastore_trace (PythonエージェントAPI)

構文

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

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

説明

datastore_trace は、 トランザクショントレース に、追加セグメントの形で詳細を追加するために使用されます。 datastore_trace で報告されたすべてのコールは、 APM Databases ページ に表示されます。 datastore_trace は、 DatastoreTraceWrapper部分的な を返します。これは、あなたのデータストアへのコールを計時する関数のデコレーターとして使用できます。

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

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

  • コンテキストマネージャー: コンテキストマネージャーのフォームは DatastoreTrace.
  • ラッパー: ラッパーの形は DatastoreTraceWrapper 。デコレーターを使わずにラップした関数を返すのに使えます。
  • パスベースのラッパー: パスベースのラッパー形式は wrap_datastore_trace 。これは、 DatastoreTraceWrapper をモンキー・パッチングによって与えられたオブジェクトに適用します。これは、デコレータと同じパラメータに加えて、追加の moduleobject_path パラメータを取ります。

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

パラメータ

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

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

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

パラメーター

説明

製品

文字列

必須項目です。ベンダーの名前です。例: Postgres, Redis.

ターゲット

文字列

必須項目です。コレクションまたはテーブルの名前です。対象がない場合は、 None を使用する必要があります。

操作

文字列

必要です。データストア操作の名前です。例: select, get, insert, rollback.提供されない場合、デフォルトは other となります。

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

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

コンテキストマネージャのパラメータには、 パラメータ から datastore_trace までのすべてのパラメータに加えて、 hostport_path_or_iddatabase_name パラメータが追加されています。

パラメーター

説明

ホスト

文字列

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

ポートパス_OR_ID

文字列

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

データベース名

文字列

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

ラッパーのパラメーター

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

ラッパーのパラメータには、すべての パラメータ for datastore_tracewrapped パラメータがあります。

パラメーター

説明

ラップ

機能

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

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

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

パラメータには、すべての パラメータ for datastore_trace とこれらのパラメータが含まれます。

パラメーター

説明

モジュール

オブジェクト

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

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株式会社。