• 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

external_trace (API do agente Python)

Sintaxe

newrelic.agent.external_trace(library, url, method=None)

Reportar chamadas para serviços externos como segmentos de rastreamento da transação.

Descrição

external_trace é usado para adicionar mais detalhes ao seu rastreamento de transação na forma de segmentos adicionais. Todas as chamadas relatadas com external_trace aparecerão na guia externas do APM. external_trace retorna uma parcial de ExternalTraceWrapper que pode ser usada como decorador para uma função que chama um serviço externo.

O decorador external_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 é ExternalTrace.

  • The wrapper

    : o formulário do wrapper é ExternalTraceWrapper. 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_external_trace. Isso aplica o ExternalTraceWrapper 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âmetros para external_trace

newrelic.agent.external_trace(library, url, method=None)

O decorador external_trace usa estes parâmetros:

Parâmetro

Descrição

library

string ou função

Obrigatório. O nome (ou tipo) da biblioteca externa em uso. Passe uma string que o defina ou uma função que o retorne.

url

string ou função

Obrigatório. A URL que foi solicitada pela chamada da biblioteca. Passe uma string que o defina ou uma função que o retorne.

method

string ou função

Opcional. O método que define o tipo de chamada que está sendo feita. Normalmente são get, post, put ou delete.

Parâmetro para ExternalTrace

newrelic.agent.ExternalTrace(library, url, method=None)

O gerenciador de contexto ExternalTrace usa todos os parâmetros obtidos por external_trace.

Parâmetro para ExternalTraceWrapper

newrelic.agent.ExternalTraceWrapper(wrapped, library, url, method=None)

O ExternalTraceWrapper usa todos os mesmos parâmetros do decorador , além de um parâmetro wrapped inicial:

Parâmetro

Descrição

wrapped

função

Obrigatório. A função de chamada externa para atribuir ao tempo externo.

parâmetro para wrap_external_trace

newrelic.agent.wrap_external_trace(module, object_path, library, url, method=None)

O wrap_external_trace usa todos os parâmetros que o decorador usa, além de um parâmetro module e um parâmetro object_path :

Parâmetro

Descrição

module

objeto

Obrigatório. O módulo que contém o objeto a ser empacotado.

object_path

corda

Obrigatório. O caminho para o objeto a ser encapsulado.

Valores de retorno

external_trace retorna uma parcial ExternalTraceWrapper() .

Exemplos

exemplo de external_trace

Um exemplo de uso de external_trace:

@external_trace('library', 'http://example.com', 'get')
def foo():
pass

Um exemplo de uso external_trace em uma corrotina nativa:

@external_trace('library', 'http://example.com', 'get')
async def foo():
pass

Exemplo de ExternalTrace

Um exemplo de uso do gerenciador de contexto ExternalTrace :

def fetch_example_dot_com():
with ExternalTrace('library', 'http://example.com', 'get'):
pass

Exemplo de ExternalTraceWrapper

Um exemplo de uso do ExternalTraceWrapper:

wrapped_fetch_example_dot_com = newrelic.agent.ExternalTraceWrapper(fetch_example_dot_com, 'library', 'http://example.com', 'get')
response = wrapped_fetch_example_dot_com()

exemplo wrap_external_trace

Um exemplo de uso do wrapper baseado em caminho wrap_external_trace :

wrap_external_trace('module', 'Foo.bar', 'library', 'http://example.com', 'get')
Copyright © 2024 New Relic Inc.

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