• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

trace (Python API d'agent)

Syntaxe

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

Utilisé pour instrumenter les appels aux magasins de données.

Description

datastore_trace est utilisé pour ajouter plus de détails à votre trace de transaction sous forme de segments supplémentaires. Tous les appels signalés avec datastore_trace apparaîtront sur la page de base de donnéesAPM . datastore_trace renvoie une partie de DatastoreTraceWrapper qui peut être utilisée comme décorateur pour une fonction afin de chronométrer les appels à votre datastore.

Le décorateur datastore_trace peut être utilisé sur les générateurs et les coroutines avec la version d'agent 2.102.0.85 ou supérieure. La synchronisation de ces objets commence lorsque la consommation commence et se termine lorsque l'objet est épuisé ou sort du champ d'application. Il s’agit d’un changement par rapport aux versions précédentes où la métrique représentait le temps nécessaire à la création du générateur ou de l’objet coroutine lui-même.

Si vous ne pouvez pas utiliser le décorateur dans votre application, vous pouvez utiliser l'un de ces autres formats d'appel :

  • The context manager: Le formulaire du gestionnaire de contexte est DatastoreTrace.
  • The wrapper: La forme wrapper est DatastoreTraceWrapper. Il peut être utilisé pour renvoyer une fonction encapsulée sans l'utilisation d'un décorateur.
  • The path-based wrapper: La forme wrapper basée sur le chemin est wrap_datastore_trace. Cela applique le DatastoreTraceWrapper à un objet donné via le patch de singe. Cela prend le même paramètre que le décorateur plus un paramètre module et object_path supplémentaire.

Pour une explication des utilisations de ces différents formats d’appel, voir Différents formats d’appel. Voir Exemples pour des exemples d'appel.

Paramètres

paramètre pour le décorateur

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

Cet appel inclut ces paramètres :

paramètres

Description

product

chaîne

Requis. Le nom du vendeur. Exemple : Postgres, Redis.

target

chaîne

Requis. Le nom de la collection ou de la table. S'il n'y a pas de cible, None doit être utilisé.

operation

chaîne

Requis. Le nom de l’opération datastore . Exemples : select, get, insert, rollback. Si non fourni, la valeur par défaut est other.

paramètre pour le gestionnaire de contexte

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

Le paramètre du gestionnaire de contexte inclut tous les paramètres de datastore_trace plus les paramètres supplémentaires host, port_path_or_id et database_name .

paramètres

Description

host

chaîne

Facultatif. Le nom d'hôte ou l'IP du serveur datastore .

port_path_or_id

chaîne

Facultatif. Le port utilisé pour se connecter au serveur datastore . Si vous vous connectez avec un socket Unix, cela peut être le chemin vers le socket.

database_name

chaîne

Facultatif. Le nom de la base de données.

Paramètres de l'enveloppe

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

Le paramètre du wrapper inclut tous les paramètres de datastore_trace et un paramètre wrapped :

paramètres

Description

wrapped

fonction

Requis. La fonction en cours d'encapsulation.

Paramètre d'emballage basé sur le chemin

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

Le paramètre inclut tous les paramètres de datastore_trace et ces paramètres :

paramètres

Description

module

objet

Requis. Le module contenant la fonction à instrumenter.

object_path

chaîne

Requis. Le chemin vers l'emplacement de la fonction.

Valeurs de retour

datastore_trace renvoie un DatastoreTraceWrapper() partiel.

Exemples

datastore_trace

Un exemple d'utilisation du décorateur datastore_trace :

import newrelic.agent
class _Database(UserDict.DictMixin):
...
@newrelic.agent.datastore_trace('Redis', None, 'get')
def _get(self, key):
...

Un exemple d'utilisation du décorateur datastore_trace avec des coroutines natives :

import newrelic.agent
class _Database(UserDict.DictMixin):
...
@newrelic.agent.datastore_trace('Redis', None, 'get')
async def _get(self, key):
...

Exemple de gestionnaire de contexte

Un exemple d'utilisation du gestionnaire de contexte DatastoreTrace : cela donnera des informations sur le temps nécessaire pour effectuer « 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()

Exemple d'enveloppe

Un exemple d'utilisation du DatastoreTraceWrapper:

import newrelic.agent
class _Database(UserDict.DictMixin):
...
def _get(self, key):
...
_Database._get = newrelic.agent.DatastoreTraceWrapper(
_Database._get, "Redis", None, "get"
)
Droits d'auteur © 2025 New Relic Inc.

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