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

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

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

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.