• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

datastore_trace (API del agente Python)

Sintaxis

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

Se utiliza para instrumentar llamadas a almacenes de datos.

Descripción

datastore_trace se utiliza para agregar más detalles a su traza de la transacción en forma de segmentos adicionales. Cualquier llamada reportada con datastore_trace aparecerá en la página de base de datos de APM. datastore_trace devuelve una parte de DatastoreTraceWrapper que se puede usar como decorador para que una función programe llamadas a su almacenamiento de datos.

El decorador datastore_trace se puede utilizar en generadores y corrutinas con la versión del agente 2.102.0.85 o superior. El tiempo de estos objetos comienza cuando comienza el consumo y finaliza cuando el objeto se agota o sale del alcance. Este es un cambio con respecto a versiones anteriores donde la métrica representaba el tiempo necesario para crear el generador o el objeto de rutina.

Si no puede utilizar el decorador en su aplicación, puede utilizar uno de estos otros formatos de llamada:

  • The context manager

    : El formulario del administrador de contexto es DatastoreTrace.

  • The wrapper

    : El formulario contenedor es DatastoreTraceWrapper. Se puede utilizar para devolver una función envuelta sin el uso de un decorador.

  • The path-based wrapper

    : El formulario contenedor basado en ruta es wrap_datastore_trace. Esto aplica el DatastoreTraceWrapper a un objeto determinado mediante parches de mono. Esto toma los mismos parámetros que el decorador más un parámetro module y object_path adicional.

Para obtener una explicación de los usos de estos diferentes formatos de llamadas, consulte Diferentes formatos de llamadas. Consulte Ejemplos para ver ejemplos de llamadas.

Parámetros

Parámetro para decorador

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

Esta convocatoria incluye estos parámetros:

Parámetro

Descripción

product

cadena

Requerido. El nombre del vendedor. Ejemplo: Postgres, Redis.

target

cadena

Requerido. El nombre de la colección o tabla. Si no hay ningún objetivo, se debe utilizar None .

operation

cadena

Requerido. El nombre de la operación de almacenamiento de datos. Ejemplos: select, get, insert, rollback. Si no se proporciona, el valor predeterminado es other.

Parámetro para el administrador de contexto

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

El parámetro para el administrador de contexto incluye todos los parámetros de datastore_trace más los parámetros adicionales host, port_path_or_id y database_name .

Parámetro

Descripción

host

cadena

Opcional. El nombre de host o IP del servidor de almacenamiento de datos.

port_path_or_id

cadena

Opcional. El puerto utilizado para conectarse al servidor de almacenamiento de datos. Si se conecta con un socket Unix, esta puede ser la ruta al socket.

database_name

cadena

Opcional. El nombre de la base de datos.

Parámetro de envoltura

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

Los parámetros para el contenedor incluyen todos los parámetros para datastore_trace y un parámetro wrapped :

Parámetro

Descripción

wrapped

función

Requerido. La función que se está envolviendo.

Parámetro de ajuste basado en ruta

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

El parámetro incluye todos los parámetros para datastore_trace y estos parámetros:

Parámetro

Descripción

module

objeto

Requerido. El módulo que contiene la función a instrumentar.

object_path

cadena

Requerido. La ruta a la ubicación de la función.

Valores de retorno

datastore_trace devuelve un DatastoreTraceWrapper() parcial.

Ejemplos

datastore_trace ejemplo

Un ejemplo de uso del decorador datastore_trace :

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

Un ejemplo del uso del decorador datastore_trace con rutinas nativas:

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

Ejemplo de administrador de contexto

Un ejemplo de uso del administrador de contexto DatastoreTrace : esto proporcionará tiempos de cuánto tiempo lleva realizar "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()

Ejemplo de contenedor

Un ejemplo de uso de DatastoreTraceWrapper:

import newrelic.agent
class _Database(UserDict.DictMixin):
...
def _get(self, key):
...
_Database._get = newrelic.agent.DatastoreTraceWrapper(
_Database._get, "Redis", None, "get"
)
Copyright © 2024 New Relic Inc.

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