• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

datastore_trace (API do agente Python)

Sintaxe

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

Usado para chamadas de instrumentos para armazenamentos de dados.

Descrição

datastore_trace é usado para adicionar mais detalhes ao seu rastreamento de transação na forma de segmentos adicionais. Todas as chamadas relatadas com datastore_trace aparecerão na página do banco de dados do APM. datastore_trace retorna uma parcial de DatastoreTraceWrapper que pode ser usada como decorador de uma função para cronometrar chamadas para seu armazenamento de dados.

O decorador datastore_trace pode ser usado em geradores e corrotinas com agente versão 2.102.0.85 ou superior. O tempo desses objetos começa quando o consumo começa e termina quando o objeto se esgota ou sai do escopo. Esta é uma mudança em relação às versões anteriores, onde a métrica representava o tempo necessário para criar o gerador ou o próprio objeto de corrotina.

Se você não puder usar o decorador em seu aplicativo, poderá usar um destes outros formatos de chamada:

  • The context manager

    : O formulário do gerenciador de contexto é DatastoreTrace.

  • The wrapper

    : o formulário do wrapper é DatastoreTraceWrapper. Pode ser usado para retornar uma função encapsulada sem o uso de um decorador.

  • The path-based wrapper

    : o formulário wrapper baseado em caminho é wrap_datastore_trace. Isso aplica o DatastoreTraceWrapper a um determinado objeto por meio de monkey patching. Isso usa os mesmos parâmetros do decorador mais um parâmetro module e object_path adicional.

Para obter uma explicação sobre os usos desses diferentes formatos de chamada, consulte Diferentes formatos de chamada. Consulte Exemplos para exemplos de chamadas.

Parâmetro

Parâmetro para decorador

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

Esta chamada inclui estes parâmetros:

Parâmetro

Descrição

product

corda

Obrigatório. O nome do fornecedor. Exemplo: Postgres, Redis.

target

corda

Obrigatório. O nome da coleção ou tabela. Se não houver destino, None deverá ser usado.

operation

corda

Obrigatório. O nome da operação do armazenamento de dados. Exemplos: select, get, insert, rollback. Se não for fornecido, o padrão será other.

Parâmetro para gerenciador de contexto

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

O parâmetro para o gerenciador de contexto inclui todos os parâmetros de datastore_trace mais os parâmetros adicionais host, port_path_or_id e database_name .

Parâmetro

Descrição

host

corda

Opcional. O nome do host ou IP do servidor do armazenamento de dados.

port_path_or_id

corda

Opcional. A porta usada para conectar-se ao servidor do armazenamento de dados. Se estiver conectando com um soquete unix, este pode ser o caminho para o soquete.

database_name

corda

Opcional. O nome do banco de dados.

Parâmetro do wrapper

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

Os parâmetros do wrapper incluem todos os parâmetros para datastore_trace e um parâmetro wrapped :

Parâmetro

Descrição

wrapped

função

Obrigatório. A função que está sendo encapsulada.

Parâmetro de encapsulamento baseado em caminho

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

parâmetro inclui todos os parâmetros para datastore_trace e estes parâmetros:

Parâmetro

Descrição

module

objeto

Obrigatório. O módulo que contém a função a ser instrumentada.

object_path

corda

Obrigatório. O caminho para o local da função.

Valores de retorno

datastore_trace retorna uma parcial DatastoreTraceWrapper() .

Exemplos

datastore_trace exemplo

Um exemplo de uso do decorador datastore_trace :

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

Um exemplo de uso do decorador datastore_trace com corrotinas nativas:

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

Exemplo de gerenciador de contexto

Um exemplo de uso do gerenciador de contexto DatastoreTrace : isso fornecerá o tempo necessário para executar `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()

Exemplo de wrapper

Um exemplo de uso do 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.